虚析构函数,为什么,谁能解释?懵了。
下面调用了两次a->~A(),
为什么第一次成功调用了子类的析构函数,
而第二次却没有调用子类的析构函数?
class A
{
public:
A(){}
virtual ~A()
{
cout<<"~A() "<<this<<endl;
}
int iAA;
};
class B: public A
{
public:
B(){}
virtual ~B()
{
cout<<"~B() "<<this<<endl;
}
};
B* b = new B();
A* a = b;
cout<<"*******************************"<<endl;
a->~A();
cout<<"*******************************"<<endl;
a->~A();
cout<<"*******************************"<<endl;