(Note)C++中的继承方式
在C++中,继承语法为:
class 派生类名:[继承方式] 基类名{
派生类新增加的成员
};
其中,共有三种继承方式可以选择:public(公有的)、protected(受保护的)、private(私有的)。
公有的继承: class Son : public Father {};
受保护的继承:class Son : protected Father {};
私有的继承: class Son : private Father {};
如果不写继承方式,则默认为private(私有的)。
不同的继承方式会影响基类成员在派生类中的访问权限。
三种不同的继承方式中,基类成员的访问权限如下:
(1)public继承方式
- 基类中所有 public 成员在派生类中为 public 属性;
- 基类中所有 protected 成员在派生类中为 protected 属性;
- 基类中所有 private 成员在派生类中不能使用。
(2)protected继承方式
- 基类中的所有 public 成员在派生类中为 protected 属性;
- 基类中的所有 protected 成员在派生类中为 protected 属性;
- 基类中的所有 private 成员在派生类中不能使用。
(3)private继承方式
- 基类中的所有 public 成员在派生类中均为 private 属性;
- 基类中的所有 protected 成员在派生类中均为 private 属性;
- 基类中的所有 private 成员在派生类中不能使用。
可以看出:
1.基类成员在派生类中的访问权限不高于继承方式中指定的权限
2.无论何种继承方式,基类中的 private(私有的) 成员在派生类中始终不能被使用
3.如果想让基类的成员能够被派生类继承并使用,那这些成员只能声明为 public(公有的) 或 protected(受保护的)
4.如果想让基类的成员不能通过对象访问,但可以在派生类中使用,那么只能声明为 protected(受保护的)
Reference:
C++ 继承详解_TABE_的博客-CSDN博客_c++继承
c++中的继承方式_Narcissusyaa的博客-CSDN博客_c++ 继承方式