基类指针指向派生类,通过基类指针删除派生类对象
子类析构结束,自动调用父类析构
纯虚析构(必须有函数体,因为基类也需要析构啊)
纯虚析构的类是抽象类
抽象类不能实例化对象
virtual ~Base()=0
{
cout<<"sdf"<<endl;
}
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
cout<<"Base无参构造"<<endl;
}
//虚析构函数
virtual ~Base()
{
cout<<"Base析构函数"<<endl;
}
};
class Son:public Base
{
public:
Son()
{
cout<<"Son无参构造"<<endl;
}
~Son()
{
cout<<"Son析构函数"<<endl;
}
};
void doWork(Base *p)
{
delete p;
}
int main(int argc, char *argv[])
{
doWork(new Son);
return 0;
}