我正在开发一个游戏,我有一个从父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();
}
答案 0 :(得分:1)
家长班'析构函数会自动调用。析构函数的调用顺序与构造函数的顺序相反;所以,依靠父母班级可以做到这一点'衍生类的析构函数中的字段。
您最好将析构函数声明为virtual
。如果通过基类指针删除派生类的对象,则需要确定正确的析构函数。
尝试在析构函数中添加跟踪输出,以确保析构函数的调用顺序。