C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 具有公共非虚拟析构函数的类是否应标记为“最终”?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
关闭选民,请帮助我改进问题,以便重新开放: How can I improve this question so that it gets reopened?

Herb Sutter wrote

根据该指南,如果您有一个具有公共非虚拟析构函数的类,则该类不应该用作基类.
为什么不把它标记为最终执行?

但萨特也在wrote以下,暗示最终不需要使用:

一个相关的引用,暗示现在应该使用的最终版本来自Scott Meyer的Effective C,第7项:

一个数据点是standard library has no types marked “final”,但其原因似乎是为了避免破坏代码.

这里有一个类似的问题,但不完全重复,因为它错过了“受保护的非虚拟”选项:Default to making classes either `final` or give them a virtual destructor?

解决方法

因为它是适合某些情况的指南,但不是全部,所以为什么要“强制”它呢?

通过虚函数调用的动态多态性尚未配置,但这是非常好和不允许的继承,但这不是我们使用继承的唯一场景.

C是多范式的,开始实施仅适合用例子集的窄方法是没有意义的.从我所知道的,你的建议基本上归结为禁止人们使用继承,除非他们也将使用动态多态.

大佬总结

以上是大佬教程为你收集整理的c – 具有公共非虚拟析构函数的类是否应标记为“最终”?全部内容,希望文章能够帮你解决c – 具有公共非虚拟析构函数的类是否应标记为“最终”?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。