c – 虚拟最终方法比根类中的非虚方法更好吗?
发布时间:2020-12-16 07:10:09 所属栏目:百科 来源:网络整理
导读:我有一个抽象类,它是类层次结构的根.该根类有一个方法,有一些简单的实现,似乎没有必要随时随地更改该实现. 使该方法非虚拟很好,但有些子类可能会意外地重新实现它.在这种情况下,虚拟最终方法是否更好? 解决方法 如果您决定将该方法声明为virtual … final,
我有一个抽象类,它是类层次结构的根.该根类有一个方法,有一些简单的实现,似乎没有必要随时随地更改该实现.
使该方法非虚拟很好,但有些子类可能会意外地重新实现它.在这种情况下,虚拟最终方法是否更好? 解决方法
如果您决定将该方法声明为virtual … final,您将使所有用户支付虚拟调度的运行时成本,以保护可能意外隐藏基类功能的少数用户.
由于C中的指导原则之一是“你don’t pay for使用什么you don’t”,我会说最好让函数保持非虚拟状态,如果隐藏函数,派生者应该负责. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |