C/C++中派生類訪問屬性詳解及其作用介紹

保護繼承

由 protected 聲明的成員稱為 “受保護的成員”, 或簡稱 “保護成員”.
從用戶的角度來看, 保護成員等價於私有成員. 保護成員可以被派生類的成員函數引用.

在這裡插入圖片描述

派生類成員的訪問屬性

4 種訪問屬性:

  • 公用的: 類內和類外都可以訪問
  • 受保護的: 類內可以訪問, 類外不能訪問, 下一層的派生類可以訪問
  • 私有的: 類內可以訪問, 類外不能訪問
  • 不可訪問的: 類內和類外都不能訪問
繼承方式 基類中的成員 訪問屬性
公用繼承 (public) 公用成員和保護成員 在派生類中保持原有訪問屬性
公用繼承 (public) 私有成員 仍為基類私有, 派生類不可訪問
私有繼承 (private) 公用成員和保護成員 在派生類中成瞭私有成員
私有繼承 (private) 私有成員 仍為基類私有, 派生類不可訪問
受保護的繼承 (protected) 公用成員和保護成員 在派生類中成瞭保護成員
受保護的繼承 (protected) 私有成員 仍為基類私有, 派生類不可訪問

在這裡插入圖片描述

總結

  • 如果在多級派生時都采用公用繼承方式, 那麼直到最後一級派生類都能訪問基類的公用成員和保護成員
  • 如果采用私有繼承的方式, 經過若幹次派生之後, 基類的所有的成員已經變成不可訪問的瞭
  • 如果采用菜戶繼承方式, 在派生類外無法訪問派生類中的任何成員. 而且經過多次派生後, 人們很難清楚的記住哪些成員可以訪問, 哪些成員不能訪問, 很容易出錯

註: 實際開發中, 我們通常使用的是公共繼承.

到此這篇關於C/C++中派生類訪問屬性詳解及其作用介紹的文章就介紹到這瞭,更多相關C++派生類訪問屬性內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: