#include <iostream>
#include "Policy.h"
using namespace std;
class Base
{
public:
~Base(){ cout<<"delete Base"<<endl; }
};
class A:public Base
{
public:
virtual ~A(){ cout<<"delete A"<<endl; }
};
class B:public A
{
public:
~B(){ cout<<"delete B"<<endl; }
};
class C:public B
{
public:
~C(){ cout<<"delete C"<<endl; }
};
void main()
{
//Base* pBase = new C();
//delete pBase;
A* pA = new C();
delete pA;
B* pB = new C();
delete pB;
system("pause");
}
结论表明, 只要有一个析构函数是虚析构函数, 则所有后续类的析构函数都会变成虚板构函数。