小编Shi*_*eng的帖子

C++中的析构函数执行顺序

我对以下代码段的结果有些怀疑.先感谢您! 为什么不叫B1析构函数?在我看来,"Dest B"应该显示在"Dest A"之前.任何解释都将受到赞赏.

class A1 {
    public:
        A1() { cout << "Const A" << endl; }
        ~A1() { cout << "Dest A" << endl; }
        virtual const char* ClassName() const{ return ("A"); }
};

class B1:public A1 {
    public:
        B1() { cout << "Const B" << endl; }
        ~B1() { cout << "Dest B" << endl; }
        virtual const char* ClassName() const { return ("B"); }
};

void foo1(A1 *a1)
{
    cout << "foo1 has been passed an object …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance destructor

0
推荐指数
1
解决办法
143
查看次数

标签 统计

c++ ×1

destructor ×1

inheritance ×1