gpt4 book ai didi

c++ - 删除派生对象时是否总是调用基本析构函数?

转载 作者:太空狗 更新时间:2023-10-29 23:24:23 24 4
gpt4 key购买 nike

假设我有以下内容:

class Foo {
public:
void destroy();
~Foo()
{
destroy();
}
};

class Bar : public Foo {
public:
~Bar() {}
};

如果我有一个Bar对象,当Bar对象被删除时,Foo的析构函数会被调用吗?

谢谢

最佳答案

是的。

但是上面的代码是危险的;如果您不将 ~Foo() 声明为 virtual,那么如果您调用 ,则不会调用 ~Bar()通过 Foo *Bar 对象上删除

关于c++ - 删除派生对象时是否总是调用基本析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4126130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com