gpt4 book ai didi

c++ - 为什么纯虚析构函数的实现必须为空?它应该是内联的吗?

转载 作者:IT老高 更新时间:2023-10-28 21:35:54 30 4
gpt4 key购买 nike

我在其他线程中读到,当您实现纯虚拟析构函数(是的,它可以有一个实现)时,它必须为空,并且(?)应该是内联的。它应该是空的吗?如果是这样,为什么?它应该是内联的吗?如果有,为什么?

编辑:这就是纯虚拟析构函数的实现方式:

class A{
virtual ~A() = 0;
}

inline A::~A(){
//implementation
}

最佳答案

纯虚析构函数必须有一个实现(假设你至少有一个具体的派生类)。

没有规定纯虚析构函数必须有空体。我也不知道它应该有什么原因,除了大多数析构函数应该有一个空的主体。

纯虚析构函数可以是内联的或非内联的。我希望每个人的好处取决于基类和具有非平凡析构函数的非静态成员的数量。

另外一个问题是:在某些流行的编译器上,如果析构函数是为类定义的唯一虚方法,最好将其设为非内联的,以帮助实现处理其多态魔力。

关于c++ - 为什么纯虚析构函数的实现必须为空?它应该是内联的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998344/

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