看到论坛上的整理下来 ,学习学习
class A
{public:
A(){}
~A(){}
};
class B:public A
{
public:
B(){}
~B(){}
};
int main()
{
A *p=new B;
delete p;
错误:
析构函数有问题,delete时,只是释放A
delete时会调用类的析构函数
而因为析构函数不是虚函数,则删除指向B实例的指针时将会按照指针类型A调用A的析构函数
正解:
class A
{
public:
A(){}
virtual ~A(){}
};
return 0;
}