C/C++中派生類訪問屬性詳解及其作用介紹
保護(hù)繼承
由 protected 聲明的成員稱為 “受保護(hù)的成員”, 或簡稱 “保護(hù)成員”.
從用戶的角度來看, 保護(hù)成員等價(jià)于私有成員. 保護(hù)成員可以被派生類的成員函數(shù)引用.
派生類成員的訪問屬性
4 種訪問屬性:
- 公用的: 類內(nèi)和類外都可以訪問
- 受保護(hù)的: 類內(nèi)可以訪問, 類外不能訪問, 下一層的派生類可以訪問
- 私有的: 類內(nèi)可以訪問, 類外不能訪問
- 不可訪問的: 類內(nèi)和類外都不能訪問
繼承方式 | 基類中的成員 | 訪問屬性 |
---|---|---|
公用繼承 (public) | 公用成員和保護(hù)成員 | 在派生類中保持原有訪問屬性 |
公用繼承 (public) | 私有成員 | 仍為基類私有, 派生類不可訪問 |
私有繼承 (private) | 公用成員和保護(hù)成員 | 在派生類中成了私有成員 |
私有繼承 (private) | 私有成員 | 仍為基類私有, 派生類不可訪問 |
受保護(hù)的繼承 (protected) | 公用成員和保護(hù)成員 | 在派生類中成了保護(hù)成員 |
受保護(hù)的繼承 (protected) | 私有成員 | 仍為基類私有, 派生類不可訪問 |
總結(jié)
- 如果在多級(jí)派生時(shí)都采用公用繼承方式, 那么直到最后一級(jí)派生類都能訪問基類的公用成員和保護(hù)成員
- 如果采用私有繼承的方式, 經(jīng)過若干次派生之后, 基類的所有的成員已經(jīng)變成不可訪問的了
- 如果采用菜戶繼承方式, 在派生類外無法訪問派生類中的任何成員. 而且經(jīng)過多次派生后, 人們很難清楚的記住哪些成員可以訪問, 哪些成員不能訪問, 很容易出錯(cuò)
注: 實(shí)際開發(fā)中, 我們通常使用的是公共繼承.
到此這篇關(guān)于C/C++中派生類訪問屬性詳解及其作用介紹的文章就介紹到這了,更多相關(guān)C++派生類訪問屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++精要分析右值引用與完美轉(zhuǎn)發(fā)的應(yīng)用
C++11標(biāo)準(zhǔn)為C++引入右值引用語法的同時(shí),還解決了一個(gè)短板,即使用簡單的方式即可在函數(shù)模板中實(shí)現(xiàn)參數(shù)的完美轉(zhuǎn)發(fā)。那么,什么是完美轉(zhuǎn)發(fā)?它為什么是C++98/03 標(biāo)準(zhǔn)存在的一個(gè)短板?C++11標(biāo)準(zhǔn)又是如何為C++彌補(bǔ)這一短板的?別急,本節(jié)將就這些問題給讀者做一一講解2022-05-05C++實(shí)現(xiàn)LeetCode(53.最大子數(shù)組)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(53.最大子數(shù)組),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Embarcadero?Dev-C++輸出中文亂碼問題圖文詳解
Dev-C++(或者叫做 Dev-Cpp)是Windows環(huán)境下的一個(gè)輕量級(jí)C/C++ 集成開發(fā)環(huán)境(IDE),下面這篇文章主要給大家介紹了關(guān)于Embarcadero?Dev-C++輸出中文亂碼問題的相關(guān)資料,需要的朋友可以參考下2023-01-01