0
点赞
收藏
分享

微信扫一扫

为什么要把父类的析构函数定义成虚函数?


问:为什么要把父类的析构函数定义成虚函数?
答:否则子类的析构函数可以未被调用,具体代码如下:

class A 
{
public:
A(){TRACE("A()/n");};
~A(){TRACE("~A()/n");};

};class B : public A
{
public:
B(){TRACE("B()/n");};
~B(){TRACE("~B()/n");};
};void CEgDlg::OnButton1()
{
A * p = (A*)new B() ;
delete p ;
}


运行结果如下:

A()
B()
~A()

举报

相关推荐

0 条评论