C ++ 11中具有虚拟成员的虚拟析构函数

问题描述 投票:30回答:4

关于C ++ 11/14标准的[In these slides,在幻灯片15上,作者写道,C ++ 11中“许多经典编码规则[不再]不再适用””。他提出了三个示例的列表,我同意“三个规则”和内存管理。

然而他的第二个例子是“带有虚拟成员的虚拟析构函数”(就是这样)。 这是什么意思?我知道必须声明一个虚拟的基类析构函数,以便在我们有类似的东西时调用正确的析构函数。

Base *b = new Derived;
...
delete b;

这里对此有很好的解释:When to use virtual destructors?

但是如果您有虚拟成员,现在在C ++ 11中将虚拟声明为析构函数是没有用的吗?

[在这些有关C ++ 11/14标准的幻灯片中,在幻灯片15上,作者写道,C ++ 11中“许多经典编码规则不再适用”。他提出了三个示例的清单,我同意...

c++ c++11 virtual-destructor
4个回答
36
投票

作为幻灯片的作者,我会尽力澄清。


2
投票

我认为这与演示文稿中其他地方提到的“零规则”有关。


0
投票

链接的文件显示了相关代码:


0
投票
要回答特定问题...
© www.soinside.com 2019 - 2024. All rights reserved.