【发布时间】:2012-06-02 06:09:12
【问题描述】:
这是一个面试问题,面试已经完成。
什么东西可以让 C++ 比 C 慢?
面试官问的很深,每次我说什么的时候总是问“还有别的吗?”。
我的想法:
C 中不可用的 C++ 功能可能需要一些成本。
例如,如果我们在构造函数中使用赋值来初始化类的成员而不是通过初始化列表,则成员的默认构造函数可能会在构造函数的主体之前调用一次,然后该值被赋值清除。
需要通过查找虚函数指针来调用虚函数。这是一个开销。
还有更好的主意吗?
任何帮助将不胜感激。
谢谢!!!
【问题讨论】:
-
我的回答是:“不要在那里工作”。但这不是真正的主题,所以我会保留它作为评论。
-
虚函数没有比c慢的,c没有可以比较的概念。你得到的最接近的是函数指针,如果没有在 c 中实现 vtable,它们不支持一半的虚函数。
-
@EtiennedeMartel:你的评论“不要在那里工作”让我很感兴趣!为什么不呢? (您的回答可以帮助我避免不幸的职业道路错误,因此非常感谢您对它的关注。)
-
@thb 来Lounge<C++>,它会更适合这种讨论。
-
请重新打开。对于这个问题,我有一个大而有效的答案,可以以非争论的方式回答,我无法提交,因为在我写作时它已关闭。
标签: c++ c exception polymorphism virtual