當(dāng)派生類與基類中有相同成員時(shí):
若未強(qiáng)行指名,則通過派生類對象使用的是派生類中的同名成員。
如要通過派生類對象訪問基類中被覆蓋的同名成員,應(yīng)使用基類名限定。
多重繼承:
class 派生類名:繼承方式1? 基類名1,繼承方式2? 基類名2,...
{
成員聲明;
}
注意:每一個(gè)“繼承方式”,只用于限制對緊隨其后之基類的繼承。
多繼承時(shí)的構(gòu)造函數(shù):
派生類名::派生類名(基類1形參,基類2形參,...基類n形參,本類形參):基類名1(參數(shù)), 基類名2(參數(shù)), ...基類名n(參數(shù))
{
本類成員初始化賦值語句;
};
二義性問題
在多重繼承時(shí),基類與派生類之間,或基類之間出現(xiàn)同名成員時(shí),將出現(xiàn)訪問時(shí)的二義性(不確定性)——采用虛函數(shù)或同名覆蓋原則來解決。
當(dāng)派生類從多個(gè)基類派生,而這些基類又從同一個(gè)基類派生,則在訪問此共同基類中的成員時(shí),將產(chǎn)生二義性——采用虛基類來解決。
虛基類
虛基類的引入,用于有共同基類的場合
聲明:以virtual修飾說明基類?例:class B1:virtual public B
作用:主要用來解決多繼承時(shí)可能發(fā)生的對同一基類繼承多次而產(chǎn)生的二義性問題.
為最遠(yuǎn)的派生類提供唯一的基類成員,而不重復(fù)產(chǎn)生多次拷貝
注意:在第一級繼承時(shí)就要將共同基類設(shè)計(jì)為虛基類。