【发布时间】:2016-09-19 02:12:07
【问题描述】:
在继承方面,我知道建议您的类的析构函数是虚拟的,因此除了任何派生析构函数之外,基类的析构函数会被正确调用。但是,我想知道在以下场景中是否存在与派生对象相关的堆栈相关问题。
假设我们有一个没有析构函数的 Base 类(无论出于何种原因):
class Base{};
还有一个确实有析构函数的派生类:
class Derived : public Base
{
~Derived(){}
};
主要是...:
int main()
{
Derived a;
return 0;
}
我是否会遇到没有析构函数的基类的任何问题?我最初的猜测是编译器只会为 Base 类生成一个默认的析构函数。同样,我的问题主要与堆栈有关,而不是动态内存:是否有任何奇怪的情况我需要注意以避免调用 Derived 析构函数而 Base 析构函数不被调用?
【问题讨论】:
标签: c++ inheritance destructor