请讲一讲基类指针指向派生类对象后指针释放过程?
class A
{
public
virtual ~A(){cout<<"x";}//这里一定要声明为虚函数为什么?
};
class B:public A
{
public
~B(){count<<"y";}
}
void main()
{
A*p=new B;
delete p;
}
如果类A的析构函数不声明为虚函数就会发生内存泄漏,我向高手请,教请详细说一下:
它是怎么在内存中存放的?
它是怎么去找到类B的析构函数?
它为什么要去调B的析构函数?
不是虚函数时为什么不去调用?