C++继承基类析构函数
C++ Inheriting base Class 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();
}
父类的析构函数会被自动调用。析构函数的调用顺序与构造函数的调用顺序相反;因此,在派生类的析构函数中依赖父类的字段是可以的。
您最好将析构函数声明为virtual
。若通过基类指针删除派生类的对象,则需要确定正确的析构函数。
尝试在析构函数中添加跟踪输出,以确保析构函数的调用顺序。
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 对具有动态分配的内存和析构函数的类对象的引用
- 基类中的默认析构函数禁用子类中的移动构造函数(如果有成员)
- 即使基类和派生类只使用基元数据类型,我是否需要定义虚拟析构函数
- C++11:我可以显式调用基类析构函数来销毁派生类吗
- 为什么我不能使用已删除或私有析构函数分配类的数组?
- 显式默认析构函数禁用类中的默认移动构造函数
- 具有受保护析构函数的类数组的动态分配
- 不带名称、构造函数或析构函数的类
- 我可以从析构函数的类方法调用它吗
- 否,除非函数返回具有抛出析构函数的类
- 析构函数子类中的 c++ 分段错误
- 从没有虚拟析构函数的类继承
- 非平凡的析构函数使类具有非平凡的可构造性
- 是否应该初始化具有未重写的纯虚拟析构函数的类
- 为什么带有用户定义析构函数的类的实例将成员指针设置为零
- 为什么不能对带有析构函数的类进行忆及
- 为什么不为定义了析构函数的类合成move操作呢?
- 在析构函数中将类成员设置为空
- 在第三方软件中派生没有虚析构函数的类