在C++中,有三种继承方式:公有继承、私有继承和保护继承。不同的继承方式,主要区别在于基类中不同访问权限的成员在派生类中的访问权限变化情况。
- 若继承方式是public,基类成员在派生类中的访问权限保持不变,也就是说,基类中的成员访问权限,在派生类中仍然保持原来的访问权限;
- 若继承方式是private,基类所有成员在派生类中的访问权限都会变为私有 (private)权限;
- 若继承方式是protected,基类的共有成员和保护成员在派生类中的访问权限都会变为保护 (protected)权限,私有成员在派生类中的访问权限仍然是私有 (private)权限。
总结上述规则,可以如下表所示:
基类(父类) | 公有继承 | 保护继承 | 私有继承 |
public | public | protected | private |
protected | protected | protected | private |
private | 不可见(不能访问) | 不可见(不能访问) | 不可见(不能访问) |