C 三種繼承方式

2021-09-10 18:37:12 字數 1022 閱讀 1407

一、公有繼承(public)

基類成員對派生類的可見性為:基類的公有成員和保護成員可見,基類的私有成員不可見。

基類成員對派生類物件的可見性為:基類的公有成員可見,保護成員和私有成員不可見,即通過派生類的物件只能訪問基類的public成員。

所以,在公有繼承時,派生類的物件可以直接訪問基類中的公有成員,派生類的成員函式可以直接訪問基類中的公有成員和保護成員。

二、私有繼承(private)

基類的public和protected成員都以private身份出現在派生類中,但基類的private成員同樣是不可直接訪問的。

基類成員對派生類的可見性為:基類的公有成員和保護成員可見,基類的私有成員不可見。(經過私有繼承之後,所有基類的成員都成為了派生類的私有成員或不可直接訪問的成員,如果用此派生類進一步向下派生子類的話,基類的全部成員就無法在這個派生類的子類中被直接訪問)

基類成員對派生類物件的可見性為:基類的公有成員、保護成員和私有成員均是不可見的,即通過通過派生類的物件不能直接訪問基類中的任何成員。

所以,在私有繼承時,派生類的物件無法直接訪問基類中的任何成員,派生類的成員函式則依然可以直接訪問基類中的公有成員和保護成員。另外,基類的公有和保護成員只能由直接派生類繼承,而無法再向下繼承。

三、保護繼承(protect)

基類的public和protected成員都以protected身份出現在派生類中,基類的private成員也同樣是不可直接訪問的。

基類成員對派生類的可見性為:基類的公有成員和保護成員可見,基類的私有成員不可見。(比較私有繼承和保護繼承可以看出,實際上在直接派生類中,所有成員的訪問屬性都是完全相同的。但是,如果派生類作為新的基類繼續派生時,二者的區別就出現了。)

基類成員對派生類物件的可見性為:基類的公有成員、保護成員和私有成員均是不可見的,即通過通過派生類的物件不能直接訪問基類中的任何成員。

因此,保護繼承既與私有繼承有相似的地方也有與公有繼承相似的地方。對派生類的物件來說,它與私有繼承方式的性質相同。而對於其派生類來說,它又與公有繼承方式的性質相同。這樣做既實現了資料隱藏,又方便繼承,實現**重用。

C 三種繼承方式

公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 2.私有繼承 private 私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。3.保護繼承 protected 保護繼承...

C 三種繼承方式

繼承是使 可以復用的重要手段,也是物件導向程式設計的核心思想之一。簡單的說,繼承是指乙個物件直接使用另一物件的屬性和方法。繼承呈現了 物件導向程式設 計的層次結構,體現了 由簡單到複雜的認知過程。c 中的繼承關係就好比現實生活中的父子關係,繼承一筆財產比白手起家要容易得多,原始類稱為基類,繼承類稱為...

C 三種繼承方式

一 三種繼承方式 繼承方式不同,第乙個不同是的是派生類繼承基類後,各成員屬性發生變化。第二個不同是派生類的物件能訪問基類中哪些成員發生變化。中紅色標註。1 include 2 using namespace std 34 classa5 1314class b publica15 1819int m...