当您在C ++中更喜欢虚拟函数而不是模板时?

爱德华·罗斯托米扬

我接受了一家金融公司的采访,并被问到以下问题:
“列出比您更喜欢虚拟功能的案例?

这对我来说听起来很奇怪,因为通常我们的目标是相反的权利?
所有的书籍,文章和讲座都鼓励我们使用静态多态性而不是动态性。

在应该使用虚函数并避免使用模板时,我是否还没有任何已知的案例?

布雷特·黑尔

GUI /可视化窗口小部件工具箱就是一个明显的例子。draw例如,重新实现方法对于虚拟方法和动态分派来说无疑省事了。而且由于现代C ++往往不鼓励原始指针管理,因此std::unique_ptr可以为您管理资源。

我敢肯定,还有很多其他的层次化示例可供您使用...enemy游戏的基类,其中包含处理各种不良行为的虚拟方法:)

今天,用于动态调度的整个“开销”论点完全没有价值。我认为,数十年来,vtable间接实现对于严重的工作负载而言并不是很大的开销。还有一个更有趣的问题,如果今天设计C ++,多态性会成为语言的一部分吗?但是,现在既不在这里也不在那里。


我不希望这个问题继续存在,因为这不是直接的编程问题,而且很可能会引起人们的意见。对于软件工程来说,这可能是一个更好的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您在 C++ 中的类型的向量

来自分类Dev

您在Objective c和Swift中怎么称呼它?

来自分类Dev

如果您在C ++上有Makefile项目,如何在VScode中“修复”调试器?

来自分类Dev

C ++:在基本模板类中调用派生的专用虚拟函数

来自分类Dev

当您在iOS应用中触摸横幅时

来自分类Dev

当您在连接上调用`release`而不是`destroy`时?

来自分类Dev

记住您在Android中的用户选择

来自分类Dev

您在AngularJS中的哪里声明对象?

来自分类Dev

您在IOS中怎么称呼它?

来自分类Dev

当您在jQuery中说“ $ .something”时,这叫什么?

来自分类Dev

触发@keyframes 动画,当您在 CSS 中悬停单独的对象时

来自分类Dev

C ++中虚拟函数的概念

来自分类Dev

当C ++中也有非模板函数时,调用专门的模板函数

来自分类Dev

哪些C版本允许您在for循环中声明变量?

来自分类Dev

您在尝试使用 Symfony 模板组件加载模板时请求了不存在的参数“名称”错误

来自分类Dev

您在哪里通用Web模板连接器

来自分类Dev

Maven错误:也许您在JRE而不是JDK上运行?

来自分类Dev

您在函数无法正常工作的Clojure中使用宏的位置

来自分类Dev

反复提示您在每次ssh登录时更改密码

来自分类Dev

运行“代码”。当您在 bash 或终端中键入“代码”时

来自分类Dev

当您在 Angular 6 组件中有内联模板时如何使用指令?

来自分类Dev

C ++:在模板类型中存在命名成员时,是否在模板类中提供类函数?

来自分类Dev

在C ++中初始化模板时将函数传递给模板对象

来自分类Dev

您在HATEOAS架构中的哪里指定HTTP动词?

来自分类Dev

您在cordova cli插件版本中的哪里设置类路径

来自分类Dev

您在标准etags --regex = ..电话中添加了什么?

来自分类Dev

当您在python中设置字典时会发生什么?

来自分类Dev

请问您在flutter中设置插件的约束是什么?

来自分类Dev

在jdbc中,您在哪里指定主机凭据?

Related 相关文章

  1. 1

    您在 C++ 中的类型的向量

  2. 2

    您在Objective c和Swift中怎么称呼它?

  3. 3

    如果您在C ++上有Makefile项目,如何在VScode中“修复”调试器?

  4. 4

    C ++:在基本模板类中调用派生的专用虚拟函数

  5. 5

    当您在iOS应用中触摸横幅时

  6. 6

    当您在连接上调用`release`而不是`destroy`时?

  7. 7

    记住您在Android中的用户选择

  8. 8

    您在AngularJS中的哪里声明对象?

  9. 9

    您在IOS中怎么称呼它?

  10. 10

    当您在jQuery中说“ $ .something”时,这叫什么?

  11. 11

    触发@keyframes 动画,当您在 CSS 中悬停单独的对象时

  12. 12

    C ++中虚拟函数的概念

  13. 13

    当C ++中也有非模板函数时,调用专门的模板函数

  14. 14

    哪些C版本允许您在for循环中声明变量?

  15. 15

    您在尝试使用 Symfony 模板组件加载模板时请求了不存在的参数“名称”错误

  16. 16

    您在哪里通用Web模板连接器

  17. 17

    Maven错误:也许您在JRE而不是JDK上运行?

  18. 18

    您在函数无法正常工作的Clojure中使用宏的位置

  19. 19

    反复提示您在每次ssh登录时更改密码

  20. 20

    运行“代码”。当您在 bash 或终端中键入“代码”时

  21. 21

    当您在 Angular 6 组件中有内联模板时如何使用指令?

  22. 22

    C ++:在模板类型中存在命名成员时,是否在模板类中提供类函数?

  23. 23

    在C ++中初始化模板时将函数传递给模板对象

  24. 24

    您在HATEOAS架构中的哪里指定HTTP动词?

  25. 25

    您在cordova cli插件版本中的哪里设置类路径

  26. 26

    您在标准etags --regex = ..电话中添加了什么?

  27. 27

    当您在python中设置字典时会发生什么?

  28. 28

    请问您在flutter中设置插件的约束是什么?

  29. 29

    在jdbc中,您在哪里指定主机凭据?

热门标签

归档