繼承是物件導向程式設計中的重要特性,是軟體復用的一種形式。其實繼承和派生就是同一種概念的不同說法罷了,通常我們說子類繼承父類,父類派生出子類。先講一下c++中派生與繼承的基本概念,它是之後學習派生類的構造與析構,以及多重繼承等的基礎。
1.派生類的宣告
宣告乙個派生類的一般格式:
class 派生類名:[繼承方式] 基類名 ;
對於上述的格式主要想說一下繼承方式的作用,它主要是規定如何訪問從基類繼承的成員。它可以有關鍵字private、protected和public來分別表示私有繼承、保護繼承和公有繼承。如果不顯示繼承方式關鍵字,系統預設為私有繼承。繼承方式指定類派生類成員以及類外物件對於從基類繼承來的成員的訪問許可權。
2.基類成員在派生類中的訪問屬性
對於不同的繼承方式,基類成員在派生類中的訪問屬性也是不同的,以下表,列出了基類成員在派生類中的訪問屬性:
按繼承方式 對比:
3.派生類對基類成員的訪問規則,無非訪問方式就兩種:內部訪問和物件訪問。同樣的3中繼承方式下,派生類對基類成員的訪問也分為3類:
(1).私有繼承的訪問規則:
由以上示例可小結:
公有繼承那麼派生類繼承下來的基類中的成員,除了私有的基類成員和保護的基類成員不變外,在派生類中就都成為了公有成員,因此,派生類內部不可訪問基類中的私有成員(a1),可訪問保護成員(a2)和公有成員(資料成員a3,成員函式showa());而派生類的物件可以訪問基類中資料成員a3和成員函式showa(),但不允許訪問私有成員a1和保護成員a2。
4.最後總結一下,其實這節所講的內容歸根到底就是對於繼承方式的理解,以及從繼承方式所引出的訪問屬性和規則的相對應的不同區別。因為覺得直接用文本來表達,看起來會比較亂,所以試著參入**和示例小結來說明。希望這樣能達到讀者在看這篇隨筆時不會覺得思緒很混亂!
C 繼承與派生
派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...
c 繼承與派生
繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...
c 繼承與派生
一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...