c – 虚拟最终方法比根类中的非虚方法更好吗?

c – 虚拟最终方法比根类中的非虚方法更好吗?,第1张

概述我有一个抽象类,它是类层次结构的根.该根类有一个方法,有一些简单的实现,似乎没有必要随时随地更改该实现. 使该方法非虚拟很好,但有些子类可能会意外地重新实现它.在这种情况下,虚拟最终方法是否更好? 如果您决定将该方法声明为virtual … final,您将使所有用户支付虚拟调度的运行时成本,以保护可能意外隐藏基类功能的少数用户. 由于C中的指导原则之一是“你don’t pay for使用什么yo 我有一个抽象类,它是类层次结构的根.该根类有一个方法,有一些简单的实现,似乎没有必要随时随地更改该实现.

使该方法非虚拟很好,但有些子类可能会意外地重新实现它.在这种情况下,虚拟最终方法是否更好?

解决方法 如果您决定将该方法声明为virtual … final,您将使所有用户支付虚拟调度的运行时成本,以保护可能意外隐藏基类功能的少数用户.

由于C中的指导原则之一是“你don’t pay for使用什么you don’t”,我会说最好让函数保持非虚拟状态,如果隐藏函数,派生者应该负责.

总结

以上是内存溢出为你收集整理的c – 虚拟最终方法比根类中的非虚方法更好吗?全部内容,希望文章能够帮你解决c – 虚拟最终方法比根类中的非虚方法更好吗?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1227426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存