C++中的三種繼承關系


C++中的三種繼承關系


先看類中聲明成員時的三種訪問權限

  • public : 可以被任意實體訪問

  • protected : 只允許子類及本類的成員函數訪問

  • private : 只允許本類的成員函數訪問

在類繼承時也是 public、protected 和 private 三種方式, 當成員的訪問權限和繼承相結合時,得到的就是C++中對成員的綜合權限了。


聲明類成員時的權限與繼承時的權限組合后的結果:

基類中 繼承方式 子類中對基類成員的訪問權限
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成員不受繼承方式的影響,子類永遠無權訪問。


在子類中恢復基類的訪問權限

C++支持以兩種方式實現該目的

  • 方法一,使用using 語句,這是C++標准建議使用的方式

  • 方法二,使用訪問聲明,形式為 base-class::member;, 位置在子類中適當的訪問聲明處。(注,只能恢復原有訪問權限, 而不能提高或降低訪問權限)

 

同步發布:http://www.fengbohello.top/point/p/838

參考:http://blog.csdn.net/zhouwei1221q/article/details/47953513

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM