当子类析构需要调用父类的析构函数,基类的析构函数必须设置为虚析构函数
//基类
class base
{
base()
{
cout<<"base ";
}
virtual ~base()
{
cout<<"~base ";
}
}
//派生类
class cat : public base
{
cat ()
{
cout<<"cat ";
}
virtual ~cat ()
{
cout<<"~cat ";
}
}
void main()
{
cat* a = new cat();
delete a;
}
//输出如下:
//base cat ~cat ~base(基类使用了虚析构)
//base cat ~cat(基类没使用虚析构)