Chinaunix

标题: C++类继承,析构函数问题??? [打印本页]

作者: daxiguagg    时间: 2014-08-14 17:50
标题: C++类继承,析构函数问题???
本帖最后由 daxiguagg 于 2014-08-14 21:23 编辑

class atest
{
public:
        atest();
        ~atest();
        int a;
        int b;
protected:
private:
};
class btest:public atest
{
public:
        btest();
        ~btest();
        int a;
        int b;
protected:
private:
};

atest::atest()
{
        this->a=1;
}

atest::~atest()
{
        this->a=0;
}

btest::btest()
{

        this->a=1;
}

btest::~btest()
{
        this->a=0;

}

int _tmain(int argc, _TCHAR* argv[])
{
        atest *at=new btest();//构造函数调用顺序正确,调用了atest(),然后调用了btest()
        delete at; //这里delete at,为什么只调用了atest::~atest()的析构函数,没有调用btest::~btest()析构函数呢???
        Sleep(INFINITE);
        return 0;
}
作者: littledick    时间: 2014-08-14 18:35
虚构函数没有声明为虚函数
作者: daxiguagg    时间: 2014-08-14 21:21
本帖最后由 daxiguagg 于 2014-08-14 21:28 编辑

我顶,???
作者: ailure    时间: 2014-08-14 22:26
回复 3# daxiguagg
为啥还有疑问呢?
析构函数不为虚, 就没法调用子类的析构函数了.


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2