我接受了一家金融公司的采访,并被问到以下问题:
“列出比您更喜欢虚拟功能的案例?
这对我来说听起来很奇怪,因为通常我们的目标是相反的权利?
所有的书籍,文章和讲座都鼓励我们使用静态多态性而不是动态性。
在应该使用虚函数并避免使用模板时,我是否还没有任何已知的案例?
GUI /可视化窗口小部件工具箱就是一个明显的例子。draw
例如,重新实现方法对于虚拟方法和动态分派来说无疑省事了。而且由于现代C ++往往不鼓励原始指针管理,因此std::unique_ptr
可以为您管理资源。
我敢肯定,还有很多其他的层次化示例可供您使用...enemy
游戏的基类,其中包含处理各种不良行为的虚拟方法:)
今天,用于动态调度的整个“开销”论点完全没有价值。我认为,数十年来,vtable间接实现对于严重的工作负载而言并不是很大的开销。还有一个更有趣的问题,如果今天设计C ++,多态性会成为语言的一部分吗?但是,现在既不在这里也不在那里。
我不希望这个问题继续存在,因为这不是直接的编程问题,而且很可能会引起人们的意见。对于软件工程来说,这可能是一个更好的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句