我今天在一次非常尴尬的电话面试中被问到了这个问题:
一个拥有虚函数的类和一个拥有纯虚函数的类之间有何不同?
现在,我知道C++标准并没有具体规定vtable,甚至也没有规定v-table的存在...但从理论上讲,答案应该是什么呢?
我脱口而出,一个拥有纯虚函数的类可以有vtable,其vtable条目将指向派生类实现的纯虚函数。这个假设是否正确?然而,面试官并没有给我一个肯定的答案。
如果一个类只有纯虚函数,那么一个假想的编译器会创建一个vtable吗?如果这个类包含有定义的纯虚函数,情况会如何呢?(如:http://www.gotw.ca/gotw/031.htm)