自动调用基类部分的析构函数对基类的设计有重要影响。 删除指向动态分配对象的指针时,需要运行析构函数在释放对象的内存之前清除对象。处理继承层次中的对象时,指针的静态类型可能与被删除对象的动态类型不同,可能会删除实际指向派生类对象的基类类型指针。 如果删除基类指针,则需要运行基类析构函数并清除基类的成员,如果对象实际是派生类型的,则没有定义该行为,要保证运行适当的析构函数,基类中的析构函数必须是析构的。 例如: class A; class B :public A: 则 A* p = new B(), 是可以编译通过的,但在调用析构时需要调用B的析构函数,所以A必须定义为虚函数才能正确析构。
[C++] C++中的虚拟析构函数有什么作用?
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C++ 虚析构函数作用
简单的来说,虚函数的作用是当基类调用派生类的对象时,能够实现多态,即虚函数会优先调用派生类的对应函数。那么虚析构
虚析构函数 #include 虚函数 -
c++ 析构函数 ~
生的环境家庭不同(重载构造函数),但最终都会死亡(析构函数)。...
c++ 开发语言 后端 析构函数 构造函数 -
【C++】析构函数的作用及其使用
当一个对象的生命周期结束时,无论是对象所在的作用域结束(例如,局部对象在函数退出时)、对象被delete(针对动态分配的对
c++ java 开发语言 析构函数 字符串 -
C++ 虚拟析构函数 (virtual destructor)
C++ 虚拟析构函数 (virtual destructor). 虚拟析构函数的用法以及使用场景.
原力计划 析构函数 派生类 构造函数 C -
C++ 类 析构函数
C++ 类 析构函数阅读目录一、析构函数的定义 二、析构函数的调用 三、构造函数和析构函数的调用情况 四、私有析构函数 回到顶部一、析构函数的定义析构函数为成员函数的一种,名字与类名相同,在前面加‘~’没有参数和...
析构函数 构造函数 临时对象 复制构造函数 #include