相关分类 VC技巧 ->VC ->VCShare

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

关键字 把父类 析构函数 定义成虚函数?

问:为什么要把父类的析构函数定义成虚函数?
答:否则子类的析构函数可以未被调用,具体代码如下:
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()


上一篇:对话框完全显示后,马上执行一个按钮的事件
下一篇:如何修改一个编辑框的字体
[置顶] 如何给多维数组赋初值

 

1;