当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

把父类的析构函数定义成虚函数

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

相关内容
赞助商链接