![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cpp
文章平均质量分 69
四爷赏你1嘴巴
这个作者很懒,什么都没留下…
展开
-
【C++】C++知识点复习
牛客cpp:牛客网在线编程原创 2024-04-10 09:15:45 · 573 阅读 · 0 评论 -
【.lib.dll / .a.so】Windows和Linux两个系统下的库文件
Windows平台下:静态库后缀为.lib,动态库后缀为.dllLinux平台下:静态库格式为lib**.a,动态库格式为lib**.so谈论两者区别之前,需要对程序编译和运行有一个大致认识:代码想要输出结果,需要经过代码编译和可执行程序运行,就是编译和运行(链接)这两步。两种类型的库在其中起着不同的作用,这也就是为什么有时候代码编译通过,但是无法运行(eg:缺失dll)静态库和动态库的区别:静态库在编译过程中就已经引用并链接到了,有问题编译这一步就会报错;原创 2023-11-11 11:55:18 · 1759 阅读 · 1 评论 -
【C++】chrono库计时
chrono时间库是c++ 11中的新特性,提供计时,时钟等功能。在平时学习测试的时候会记录程序运行时间,比较两个或多个算法的优劣,通常会用chrono。原创 2023-06-11 13:25:17 · 822 阅读 · 0 评论 -
【C++】虚析构和纯虚析构
3.当父类指针指向在堆区开辟的子类对象时,如果父类无虚析构,delete父类指针,子类析构都不会被调用;当父类有虚析构,delete父类指针,先析构子类,再析构父类。2.如果父类是抽象类,子类继承父类而没有重写虚函数,也是抽象类,依旧不可以实例化对象。1.在多态中虚函数往往在父类中是没有任何意义的,主要任务是由子类来。一旦存在纯虚函数,这个类就被叫做抽象类,抽象类是无法实例化对象的。4.也就是说,一旦子类中有指针属性,父类必须写虚析构或纯虚析构。所以需要对析构函数进行特殊操作:将父类中的析构函数改为。原创 2023-06-09 17:12:55 · 48 阅读 · 0 评论 -
【C++】深浅拷贝
编译以后报错,因为浅拷贝的原因,只是将值进行了值拷贝,在堆区上开辟的数据简单的分给了p1和p2, 析构的顺序是先p2后p1,p2析构的时候将堆区析构掉了,并且将指针置空,但是p1的m_height指针并不是空,所以还要进行析构一次,但是堆区上这个数据已经被析构掉了,所以出现内存泄漏。解决问题:采用深拷贝,深拷贝的意思就是手动定义拷贝构造函数,将拷贝构造也重新new开辟新的堆区空间,各自对象对应不同的堆区空间。只需要手动开辟一下即可,这样p1和p2的m_height的指针就指向了堆区不同的两个地址。原创 2023-05-28 19:54:24 · 54 阅读 · 0 评论