#include <iostream.h>
class A
{
public:
~A() { cout<<"A::destructor\n"; };
};
class B : public A
{
public:
~B() { cout<<"B::destructor\n"; };
};
void main()
{
A *pA=new B;
delete pA;
}
#include <iostream.h>
class A
{
public:
~A() { cout<<"A::destructor\n"; };
};
class B : public A
{
public:
~B() { cout<<"B::destructor\n"; };
};
void main()
{
A *pA=new B;
delete pA;
}
没定义成virtual
~A() { cout<<"A::destructor\n"; };
改成 virtual ~A() { cout<<"A::destructor\n"; };就会调用B的析构函数了
不使用virtual,析构函数就没有多态性