gpt4 book ai didi

c++ - 大多数派生类的析构函数中的纯虚拟调用

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:35 26 4
gpt4 key购买 nike

我知道您不应该在基类的 ctor 或 dtor 中调用任何虚函数,但是从最派生类的虚函数呢?应该没问题吧?例如

class base {
...
virtual void free() = 0;
};
class child : public base {
...
free() {/* free memory */}
~child() {free();}
};

最佳答案

好吧,你可以这样做,但是 child::~child() 中的 *this 的动态类型是 child,并且没有更多的派生。因此,当您有一个进一步的派生类 class foo : child 覆盖 free() 时,被覆盖的函数将不会被调用。 p>

关于c++ - 大多数派生类的析构函数中的纯虚拟调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530255/

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