今天繼續學習了派生類。
當派生類與基類中有相同成員時:若未強行指名,則通過派生類對象使用的是派生類中的同名成員。如要通過派生類對象訪問基類中被覆蓋的同名成員,應使用基類名限定。
二義性問題:在多重繼承時,基類與派生類之間,或基類之間出現同名成員時,將出現訪問時的二義性(不確定性)——采用虛函數或同名覆蓋原則來解決。當派生類從多個基類派生,而這些基類又從同一個基類派生,則在訪問此共同基類中的成員時,將產生二義性——采用虛基類來解決。
虛基類:虛基類的引入,用于有共同基類的場合。
作用:主要用來解決多繼承時可能發生的對同一基類繼承多次而產生的二義性問題.。為最遠的派生類提供唯一的基類成員,而不重復產生多次拷貝。在第一級繼承時就要將共同基類設計為虛基類。
虛基類及其派生類構造函數:建立對象時所指定的類稱為最(遠)派生類。虛基類的成員是由最派生類的構造函數通過調用虛基類的構造函數進行初始化的。在整個繼承結構中,直接或間接繼承虛基類的所有派生類,都必須在構造函數的成員初始化表中給出對虛基類的構造函數的調用。如果未列出,則表示調用該虛基類的缺省構造函數。在建立對象時,只有最派生類的構造函數調用虛基類的構造函數,該派生類的其它基類對虛基類構造函數的調用被忽略。