默认析构函数可以自动生成为虚拟析构函数吗?

新手上路,请多包涵

默认析构函数可以自动生成为虚拟析构函数吗?

如果我定义了一个基类但没有默认析构函数,是否会自动生成默认的虚拟析构函数?

原文由 user53670 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 469
2 个回答

不。使方法虚拟化是有成本的,而 C++ 的理念是不让您为未明确声明要使用的东西付费。如果虚拟析构函数会自动生成,那么您将自动付出代价。

为什么不直接定义一个空的虚拟析构函数?

原文由 Uri 发布,翻译遵循 CC BY-SA 2.5 许可协议

不,您需要将其声明为虚拟的。

原文由 Michael Aaron Safyan 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题