C++訪問控制權限


關鍵字:public  private protected

a. 權限控制符在類中的作用

b. 權限控制符在繼承中的作用

c. 權限控制符作用於類級,並非對象級

 

一. 權限控制符在類中的作用

訪問權限可以從以下三個范圍來區分:

x. 某類的內部

y. 該類的派生類(子類)內部

z.該類外部,也就是該類的使用者客戶

public在xyz中都可以訪問,protected在xy中可以訪問,private在x中可以訪問。

訪問權限的意義:

1. public,private主要體現類的封裝性,public類外可以訪問,一般定義接口。

    private只能在類內部訪問,用於隱藏實現。

2. protected主要體現類的繼承,也是public和private的一個折中。

    protected類外不能訪問,但子類可以訪問。

 

二. 權限控制符在繼承中的作用

Note前提: 不管是什么繼承方式,當前類的private成員,其派生類都是不可以直接訪問的

      當然其派生類可以通過基類的其他接口間接訪問。

     不管控制權限如何,繼承方式如何,派生類都會繼承基類的所以成員,包括private成員。

     訪問權限和繼承方式只是決定派生類對基類的成員的可訪問性。

public,protected,private這三種繼承方式,不會影響派生類成員訪問基類的成員。

不管是哪種繼承方式,派生類都可以訪問基類的public,protected成員。

不同的繼承方式只是決定了基類的成員被繼承在派生類后,外部客戶是否有權限訪問這些成員。

1. public繼承后,子類可以訪問父類的public,protected成員,子類的客戶(即子類外部)還是保持

    原有的訪問權限。

2. protected繼承后,子類仍可以訪問父類的public,protected成員,子類的客戶就不能訪問這些成員了。

3. private繼承后,子類仍可以訪問父類的public,protected成員,子類的客戶也不能訪問這些成員了。

4. protected繼承后,派生類繼承的public,protected成員的訪問權限為protected,這表示它們在后面的繼承

    中仍然可以被后面的派生類直接訪問。private繼承則導致直接訪問權限結束。

 


免責聲明!

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



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