C++中的三種繼承關係

C++中的三種繼承關係


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

  • public : 能夠被任意實體訪問函數

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

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

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


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

基類中 繼承方式 子類中對基類成員的訪問權限
public public public
public protected protected
public private private
protected public protected
protected protected protected
protected private private
private public 子類無權訪問
private protected 子類無權訪問
private private 子類無權訪問

由以上組合結果能夠看出

一、public繼承不改變基類成員的訪問權限blog

二、private繼承使得基類全部成員在子類中的訪問權限變爲private繼承

三、protected繼承將基類中public成員變爲子類的protected成員,其它成員的訪問 權限不變。get

四、基類中的private成員不受繼承方式的影響,子類永遠無權訪問。同步


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

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

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

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

 

同步發佈:http://www.fengbohello.top/point/p/838權限

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

相關文章
相關標籤/搜索