快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

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

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

您可能还会对下面的文章感兴趣:

最新评论