C++ private和protected派生(私有和保護派生)

2020-07-16 10:04:20
除了公有派生(繼承),C++ 還支援私有派生(繼承)和保護派生(繼承)。具體寫法是在派生類定義的“繼承方式說明符”位置寫 private 或 protected。例如:
class B:private A{ };  //私有派生
class C:protected A{ };  //保護派生
不同派生方式會導致基礎類別的成員在派生類中的可存取範圍屬性不同,如表 1 所示。

表1:不同派生方式下基礎類別成員在派生類中的可存取範圍屬性
基礎類別成員 派生方式
公有派生 私有派生 保護派生
私有成員 不可存取 不可存取 不可存取
保護成員 保護 私有 保護
公有成員 公有 .私有 保護