以上代码是在论坛中遇见的,当时我并没有立刻反应上来这是什么缘故,思索一阵后,才弄明白。原来,在Derive中没有重写f函数,又因为当派生类没有重写基类的虚函数时,派生类对象对该虚函数的调用,将会调用其基类中的版本,而Derive又是多继承,于是在Derive继承时就不知道Base1中的虚函数表应该记录哪个版本的f函数,是Base2,还是Base3。因为Derive中已重定义g函数,Base1的虚函数表记录的是Derive::g。
==============================================================================问题2:代码来源<effective C++>2nd