博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++ 析构函数为虚函数 可以防止内存泄露
阅读量:4028 次
发布时间:2019-05-24

本文共 392 字,大约阅读时间需要 1 分钟。

我们来看一段代码

class CParent{	char *m_Parent;public:	CParent()	{		cout<<"Parent constructor"<

代码运行结果为:

      Parent constructor

     CHild constructor

     Parent DEconstructor

这里hi出现内存的泄漏,因为delete parent;只是调用了parent的析构函数,没有去掉用CHild的析构函数,那么CHild中的内存得不到释放,会造成内存泄漏。

~CParent()  改为   virtual ~CParent()  之后的显示为:

      Parent constructor

     CHild constructor

     CHild DEconstructor

     Parent DEconstructor

 

这也是 MFC中Cbject得中的析构函数为虚函数的原因

 

 

转载地址:http://jlobi.baihongyu.com/

你可能感兴趣的文章
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
S3C6410启动模式介绍
查看>>
Jlink + ADS调试 S3C2440
查看>>
2440初始化存储器原理(接上一篇)
查看>>
S3C2440 USB 设备控制器(转)
查看>>
Linux usb 设备驱动 (1)
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
关于静态块、静态属性、构造块、构造方法的执行顺序
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
优化IDEA启动速度,快了好多。后面有什么优化点,会继续往里面添加
查看>>
JMeter 保持sessionId
查看>>
IDEA Properties中文unicode转码问题
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>