簡體   English   中英

C++ 自定義 Inheritance 私有、公共和受保護

[英]C++ Custom Inheritance in private, public and protected

是否可以在派生的 class 中自動保護受保護的繼承成員,以及在相同的派生 class 中自動公開繼承的公共成員?

例如:

如果我有一個基礎 class A ,並且它有一些受保護和公共成員,並且我選擇創建一個繼承自A的派生 class B ,那么是否可以自動將繼承的受保護成員置於受保護類別中,並且A內公共類別中的繼承公共成員(而不是執行class B: public A - 這使得所有繼承的成員都是公共的)。

我知道我可以手動using Base::var ,但我正在尋找更快的解決方案。

我也有視覺輔助。

這是 inheritance 之后繼承成員的表示:

+--------------------------------------------------------------------------------+
|                     |                    DERIVED CLASS VIS.                    |
|   BASE CLASS VIS.   |----------------------------------------------------------+
|                     | PUBLIC DER.      | PRIVATE DER.     | PROTECTED DER.     |
+--------------------------------------------------------------------------------+
| Private     =>      | Not inherited    | Not inherited    | Not inherited      |
| Protected   =>      | Protected        | Private          | Protected          |
| Public      =>      | Public           | Private          | Protected          |
+--------------------------------------------------------------------------------+

在公共 inheritance 上:

class B : public A
  1. 基本 class 的私有成員不會派生到派生的 class 中。
  2. 基礎 class 的受保護成員被派生到派生的 class 但受保護。
  3. 基礎 class 的公共成員也派生到派生的 class 和他們從 class 外部訪問的公共成員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM