C 類成員訪問控制及繼承的訪問控制

2021-10-09 01:27:04 字數 1181 閱讀 8157

公有型別成員定義了類的外部介面,在類外智慧型訪問類的公有成員;

私有成員只能被本類的成員函式訪問,來自外部的任何訪問都是非法的,完全隱藏在類中,保護了資料的安全性;

保護型別成員的性質和私有成員性質相似,其差別在於繼承過程中對產生的新類的影響不同,意義在於不想向外部暴露某個函式或者成員變數,但又想讓派生類知道和訪問這個成員,就將其用protected標誌。是乙個平衡點,既能實現成員隱藏,又能方便繼承。

(1)公有繼承

派生類內部可以訪問基類中public和protected成員,但是類外只能通過派生類的物件訪問基類的public成員。

a)基類的public成員在派生類中依然是public的。

b)基類中的protected成員在派生類中依然是protected的。

c)基類中的private成員在派生類中不可訪問。

(2)私有繼承

派生類內部可以訪問基類中public和protected成員,並且類外也不能通過派生類的物件訪問基類的成員(可以在派生類中新增公有成員函式介面間接訪問基類中的public和protected成員)

a)基類的public成員在派生類中變成private成員。

b)基類的protected成員在派生類中變成private成員。

c)基類的private成員在派生類中不可訪問。

進一步派生的話,基類的全部成員都無法在新的派生類中被直接訪問。因此,私有繼承之後,基類的成員再也無法在以後的派生類中直接發揮作用,實際上相當於中止了基類功能的繼續繼承性,出於這種原因,一般情況下私有繼承的使用比較少。

(3)保護繼承

派生類內部可以訪問基類中public和protected成員,並且類外不能通過派生類的物件訪問基類的成員(可以在派生類中新增公有成員函式介面間接訪問基類中的public和protected成員)。

a)基類的public成員在派生類中變為protected成員。

b)基類的protected成員在派生類中依然是protected成員。

c)基類中的private成員在派生類中不可訪問。

不管哪種繼承方式,父類的私有成員都不可以訪問,只有間接的通過公有成員才能獲取到私有成員的值 

C 類訪問控制及繼承

一 c 類的訪問控制有三類 public,protected和private。類訪問控制符 類成員可被哪些物件訪問 public 1 類的成員函式。2 類物件。3 友元。4 子類成員函式 protected 1 類的成員函式。2 友元。3 子類成員函式 private 1 類的成員函式。2 友元 二...

C 類訪問控制及繼承

一 c 類的訪問控制有三類 public,protected和private。類訪問控制符 類成員可被哪些物件訪問 public 1 類的成員函式。2 類物件。3 友元。4 子類成員函式 protected 1 類的成員函式。2 友元。3 子類成員函式 private 1 類的成員函式。2 友元 二...

C艹 類的繼承 類成員的訪問控制

一 類的繼承 1.類在功能上的拓展 extend 2.只能有乙個基類,但可以實現多個基介面 3.類訪問級別對繼承的影響 4.sealed類不能被繼承 例1 using system using system.collections.generic using system.linq using sy...