c++析构函数、虚析构函数、纯虚析构函数详解
我们知道对象在结束其生命周期之前,都会调用析构函数以完成必要的清理工作;派生类调用的析构函数顺序是 “先子类,后基类” ; 这篇文章用于总结 当析构函数是普通析构函数、虚析构函数、纯虚析构函数时,我们使用delete运算符删除一个指针对象时,析构函数会有什么情况发生 ; #### 普通析构函数 #### CBase是基类,CDerive是其子类,类源码代码如下: class CBase { public: CBase(){} //基类析构函数 ~CBase(){ cout << "CBase Destructor" << endl; } private: int a; }; class CDerive:public CBase { public: CDerive(){} //子类析构函数 ~CDerive(){ cout << "CDerive Destructor" << endl; } private: int b; }; 测试代码如下: //case1 CDerive *pDeriveObj = new CDerive(); delete pDeriveObj; //case2 //基类指针对象可以指向派生类,体现基类和派生类赋值兼容关系(不同类型可以转化和赋值), //但是pBaseObj只能访问基类成员,不能访问派生类成员 CBase* pBaseObj = new