C++中派生類對基類成員的訪問形式主要有以下兩種:
1、內(nèi)部訪問:由派生類中新增成員對基類繼承來的成員的訪問。
2、對象訪問:在派生類外部,通過派生類的對象對從基類繼承來的成員的訪問。今天給大家介紹在3中繼承方式下,派生類對基類成員的訪問規(guī)則。
1、私有繼承的訪問規(guī)則
當類的繼承方式為私有繼承時,基類的public成員和protected成員被繼承后成為派生類的private成員,派生類的其它成員可以直接訪問它們,但是在類的外部通過派生類的對象無法訪問?;惖?span lang="EN-US">private成員在私有派生類中是不可直接訪問的,所以無論是派生類的成員還是通過派生類的對象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函數(shù)間接訪問。私有繼承的訪問規(guī)則總結(jié)如下:
基類成員 | private成員 | public成員 | protected成員 |
內(nèi)部訪問 | 不可訪問 | 可訪問 | 可訪問 |
對象訪問 | 不可訪問 | 不可訪問 | 不可訪問 |
2、公有繼承的訪問規(guī)則
當類的繼承方式為公有繼承時,基類的public成員和protected成員被繼承到派生類中仍作為派生類的public成員和protected成員,派生類的其它成員可以直接訪問它們。但是,類的外部使用者只能通過派生類的對象訪問繼承來的public成員?;惖?span lang="EN-US">private成員在私有派生類中是不可直接訪問的,所以無論是派生類成員還是派生類的對象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函數(shù)直接訪問它們。公有繼承的訪問規(guī)則總結(jié)如下:
基類成員 | private成員 | public成員 | protected成員 |
內(nèi)部訪問 | 不可訪問 | 可訪問 | 可訪問 |
對象訪問 | 不可訪問 | 可訪問 | 不可訪問 |
3、保護繼承的訪問規(guī)則
當類的繼承方式為保護繼承時,基類的public成員和protected成員被繼承到派生類中都作為派生類的protected成員,派生類的其它成員可以直接訪問它們,但是類的外部使用者不能通過派生類的對象訪問它們?;惖?span lang="EN-US">private成員在私有派生類中是不可直接訪問的,所以無論是派生類成員還是通過派生類的對象,都無法直接訪問基類中的private成員。保護繼承的訪問規(guī)則總結(jié)如下:
基類成員 | private成員 | public成員 | protected成員 |
內(nèi)部訪問 | 不可訪問 | 可訪問 | 可訪問 |
對象訪問 | 不可訪問 | 不可訪問 | 不可訪問 |