码迷,mamicode.com
首页 > 其他好文 > 详细

类中的析构函数是否是虚函数

时间:2020-03-02 14:35:01      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:c++类   创建   c++   问题   rtu   图片   class   关系   obj   

C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。

假设我们有这样一种继承关系:

 

 

          技术图片

 

 

如果我们以这种方式创建对象:

SubClass* pObj = new SubClass();
delete pObj;

不管析构函数是否是虚函数(即是否加virtual关键词),delete时基类和子类都会被释放;
如果我们以这种方式创建对象:

BaseClass* pObj = new SubClass();
delete pObj;


若析构函数是虚函数(即加上virtual关键词),delete时基类和子类都会被释放;
若析构函数不是虚函数(即不加virtual关键词),delete时只释放基类,不释放子类;

 

 


原文链接:https://blog.csdn.net/luoweifu/article/details/53780438

类中的析构函数是否是虚函数

标签:c++类   创建   c++   问题   rtu   图片   class   关系   obj   

原文地址:https://www.cnblogs.com/strangemonkey/p/12395415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!