1. 程式人生 > >【C++】 繼承

【C++】 繼承

    1. 基類的 private 成員在派生類中是不能被訪問的,如果基類成員不想在類外直接被訪問,但需要
在派生類中能訪問,就定義為 protected 。可以看出保護成員限定符是因繼承才出現的。
    2. public繼承是一個介面繼承,保持is-a原則,每個父類可用的成員對子類也可用,因為每個子類
物件也都是一個父類物件。
    3. protected/private繼承是一個實現繼承,基類的部分成員並非完全成為子類介面的一部分,
是 has-a 的關係原則,所以非特殊情況下不會使用這兩種繼承關係,在絕大多數的場景下使用的
都是公有繼承。私有繼承以為這is-implemented-in-terms-of(是根據……實現的)。通常比
組合(composition)更低階,但當一個派生類需要訪問基類保護成員或需要重定義基類的虛函
數時它就是合理的。
    4. 不管是哪種繼承方式,在派生類內部都可以訪問基類的公有成員和保護成員,基類的私有成員存
在但是在子類中不可見(不能訪問)。
    5. 使用關鍵字class時預設的繼承方式是private,使用struct時預設的繼承方式是public,不過最
好顯示的寫出繼承方式。
    6. 在實際運用中一般使用都是public繼承,極少場景下才會使用protetced/private繼承。