本文共 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/