和虚函数相似
#include<iostream>
using namespace std;
class ClxBase{
public:
ClxBase() {};
virtual ~ClxBase() {
std::cout << "父类析够函数"<<std::endl;
}
virtual void DoSomething(){
std::cout << "父类方法" << std::endl;
}
};
class ClxDerived : public ClxBase{
public:
ClxDerived() {};
~ClxDerived() {
std::cout << "子类析够函数" << std::endl;
}
void DoSomething() {
std::cout << "子类方法" << std::endl;
}
};
int main(){
ClxBase *pTest = new ClxDerived;
pTest->DoSomething();
delete pTest;
return 0;
}
输出如下:
子类方法
子类析够函数
父类析够函数
当去掉基类的virtual时,子类的析够函数无法调用。
输出如下:
子类方法
父类析够函数
所以虚析够函数的作用:
当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。
转载于:https://www.cnblogs.com/quan1/p/6696176.html