基類中 繼承方式 子類中
public & public繼承 => public
public & protected繼承 => protected
public & private繼承 => private
protected & public繼承 => protected
protected & protected繼承 => protected
protected & private繼承 => private
private & public繼承 => 子類無權訪問
private & protected繼承 => 子類無權訪問
private & private繼承 => 子類無權訪問
由以上組合結果可以看出
1、public繼承不改變基類成員的訪問許可權
2、private繼承使得基類所有成員在子類中的訪問許可權變為private
3、protected繼承將基類中public成員變為子類的protected成員,其它成員的訪問 許可權不變。
4、基類中的private成員不受繼承方式的影響,子類永遠無權訪問。
我們已經知道,在基類以private方式被繼承時,其public和protected成員在子類中變為private成員。然而某些情況下,需要在子類中將乙個或多個繼承的成員恢復其在基類中的訪問許可權。
c++支援以兩種方式實現該目的
方法一,使用using 語句,這是c++標準建議使用的方式
方法二,使用訪問宣告,形式為 base-class::member;,位置在子類中適當的訪問宣告處。 (注,只能恢復原有訪問許可權,而不能提高或降低訪問許可權)
C 繼承與派生訪問許可權
觀察下邊一段 class a int i protected void f2 int j private int k class b public a protected int m private int n class c public b private int p 全是公用繼承,思考這樣幾個...
簡要談談C 繼承方式與訪問許可權
簡單地說下c 類的3種繼承方式,分別是public繼承,protected繼承,private繼承。最常用的還是public繼承。class預設的是private繼承,它的member如果沒寫許可權也是預設 private。struct則相反,預設的是public繼承。結合下面的圖示和 對c 的繼承...
C 繼承許可權和繼承方式
c 繼承的一般語法為 class 派生類名 繼承方式 基類名 繼承方式限定了基類成員在派生類中的訪問許可權,包括 public 公有的 private 私有的 和 protected 受保護的 此項是可選項,如果不寫,預設為 private 成員變數和成員函式預設也是 private 現在我們知道,...