1.当能通过基类指针撤销派生类对象时;
2,。带有多态性质的基类,如果类中有任何虚函数,那就应该将该类析构函数定义为虚函数。
3.如果类的设计不是作为基类来使用,或不具备多态性,则不用声明为虚函数
撤销派生类的无名对象
#include<iostream>
using namespace std;
class Base{
public:
virtual ~Base()
{
cout<<"Base 虚析构造函数"<<endl;
}
};
class Deriverd:public Base{
public:
~Deriverd()
{
cout<<"Deriverd虚析构造函数"<<endl;
}
};
int main()
{
Base *p;
p=new Deriverd;
delete p;//撤销Deriverd派生类的无名对象
return 0;
}