gpt4 book ai didi

c++ - 为什么不为基类强制执行(C++)虚拟析构函数

转载 作者:IT老高 更新时间:2023-10-28 23:10:58 24 4
gpt4 key购买 nike

默认情况下,析构函数不是虚拟的,不需要时也不会受到伤害,这很好。

但是在基类派生类场景的情况下,有没有虚拟析构函数的用例?如果不是,编译器可能会提示(是否有意义)如果一个类派生自一个定义了公共(public)非虚拟析构函数(或没有析构函数)的基类。而不仅仅是警告它。

最佳答案

您的想法的问题在于,可以想象有人正在使用非虚拟基类析构函数作为优化(如果您永远不会通过基类指针进行销毁,那么缺少的虚拟不会受到伤害您,并且仍然避免使用 vtable 条目)。

既然可以使用,那就是允许的。我认为可选的编译器警告可能是个好主意,但不是语言规范中的内容。

关于c++ - 为什么不为基类强制执行(C++)虚拟析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081246/

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