【发布时间】:2011-11-29 23:26:21
【问题描述】:
我今天被问到这个面试问题!! (这是一个非常尴尬的电话采访..):
vtable 与 virtual 的类有什么区别 函数和具有纯虚函数的类?
现在,我知道 C++ 标准没有指定任何关于 vtables 的内容,甚至没有指定 v-table 的存在......但是从理论上讲,答案是什么?
我脱口而出,具有纯虚函数的类可以有一个 vtable,其纯虚函数的 vtable 条目将指向派生类的实现。这个假设正确吗?我没有得到面试官的肯定回答。
假设的编译器会为只有纯虚函数的类创建一个 vtable 吗?如果类包含带有定义的纯虚函数怎么办? (如图:http://www.gotw.ca/gotw/031.htm)。
【问题讨论】:
-
电话面试?你没有访问谷歌的权限吗?
-
如果我是一名经理,并且我在电话面试中听到打字,我想我会立即让这个人失望:p
-
我并没有说这是个好主意,或者我同意这样做。让我们面对现实吧,如果候选人不够聪明,无法掩饰他们使用谷歌的事实,你会雇用他们吗?
-
掩饰自己的行为比使用谷歌要糟糕得多。我想知道有多少成功的工程师在不使用谷歌的情况下完成了一周的工作?一天怎么样?根据问题的答案采取行动也不会让你成为一名优秀的工程师,恰恰相反。
-
我以前在电话面试中使用过谷歌,但我通常会觉得自己很脏。我宁愿说,“我不知道,我得查一下。”