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