C ++继承基类析构函数

时间:2014-08-28 19:09:37

标签: c++ oop destructor

我正在开发一个游戏,我有一个从父GameObject类继承的派生类,我想要完成的是在派生类析构函数中调用基类析构函数,我能做到吗?

示例:

// Base Class
class A
{
    public:

        // other code goes here...

        ~A();

    protected:
        int a;
}

// ...
// ...

// Base Class Destructor
A::~A()
{
    // sets a back to 0
    a = 0;
}

// Derived Class
class B : public A
{
    public:

        // other code goes here...

        ~B();
}

// Derived Class Methods
B::~B()
{
    // Calls for Base Class Destructor, How can i accomplish this
    A::~A();

}

1 个答案:

答案 0 :(得分:1)

家长班'析构函数会自动调用。析构函数的调用顺序与构造函数的顺序相反;所以,依靠父母班级可以做到这一点'衍生类的析构函数中的字段。

您最好将析构函数声明为virtual。如果通过基类指针删除派生类的对象,则需要确定正确的析构函数。

尝试在析构函数中添加跟踪输出,以确保析构函数的调用顺序。