为什么有时候需要把析构函数定义为虚函数

为什么有时候需要把析构函数定义为虚函数

    析构函数的作用是在对象撤销之前做必要的清理现场的工作,当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后在调用基类的析构函数,但是用new运算符建立了一个派生类对象,并且把他赋给基类指针,那么当用delete运算符撤销这个指针指向的存储空间的时候,系统会只执行基类的析构函数,而不执行派生类的析构函数。只有把析构函数定义为虚函数,那么,当delete这个指针指向的存储空间的时候,才会调用派生类的析构函数,

作者:cumtchw
出处:http://www.cnblogs.com/cumtchw/
我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

原文地址:https://www.cnblogs.com/cumtchw/p/4726603.html