c++知识
交大小航家
这个作者很懒,什么都没留下…
展开
-
c++面试知识点之虚析构和纯虚析构
当然了,并不是所有情况都需要将父类析构写为虚析构和纯虚析构,只有在子类中一些属性创建在堆区,为了走子类中的析构代码,才需要将父类析构写为虚析构或纯虚析构。在c++中,多态使用时,如果子类中有属性开辟到了堆区,那么父类指针在释放时无法调用到子类的析构代码,解决方法就是将父类中的析构函数改为虚析构或者纯虚析构。虚析构和纯虚析构的共同点:1、都可以解决父类指针释放子类对象的问题 2、都需要具体的函数实现。虚析构和纯虚析构的区别:1、如果是纯虚析构,该类属于抽象类,无法实例化对象。下面为纯虚析构的写法。原创 2024-03-13 11:30:25 · 432 阅读 · 0 评论 -
c++面试知识点之内存分配
堆区: 由程序员管理和分配,手动malloc new free delete 进行回收和分配,空间较大,但是可能会出现内存泄漏和空间碎片的情况。C++中有5个分区分别为:堆、栈、全局/静态存储区、常量存储区和代码区。栈区:由编译器管理分配和回收,存放局部变量和函数参数。代码区:存放程序的二进制代码,避免频繁的读取硬盘。常量存储区:存储常量,一般不允许修改。原创 2024-03-12 20:28:50 · 488 阅读 · 0 评论