以上代碼是在論壇中遇見的,當(dāng)時(shí)我并沒有立刻反應(yīng)上來這是什么緣故,思索一陣后,才弄明白。原來,在Derive中沒有重寫f函數(shù),又因?yàn)楫?dāng)派生類沒有重寫基類的虛函數(shù)時(shí),派生類對(duì)象對(duì)該虛函數(shù)的調(diào)用,將會(huì)調(diào)用其基類中的版本,而Derive又是多繼承,于是在Derive繼承時(shí)就不知道Base1中的虛函數(shù)表應(yīng)該記錄哪個(gè)版本的f函數(shù),是Base2,還是Base3。因?yàn)镈erive中已重定義g函數(shù),Base1的虛函數(shù)表記錄的是Derive::g。
==============================================================================問題2:代碼來源<effective C++>2nd