在C++中,public、protected 和 private 是用于类继承时指定基类成员的访问权限的关键字。它们的区别如下:
1. public 继承:
- 基类的 public 成员:在派生类中仍然是 public 成员。
- 基类的 protected 成员:在派生类中仍然是 protected 成员。
- 基类的 private 成员:在派生类中不可访问。
2. protected 继承:
- 基类的 public 成员:在派生类中变为 protected 成员。
- 基类的 protected 成员:在派生类中仍然是 protected 成员。
- 基类的 private 成员:在派生类中不可访问。
3. private 继承:
- 基类的 public 成员:在派生类中变为 private 成员。
- 基类的 protected 成员:在派生类中变为 private 成员。
- 基类的 private 成员:在派生类中不可访问。
总结:
- public 继承保持基类成员的访问权限不变,protected 继承将基类的 public 成员变为 protected,private 继承将基类的 public 和 protected 成员变为 private。
- public 继承是最常用的继承方式,保持了基类接口的可访问性,protected 继承用于实现继承关系,private 继承用于实现实现细节的隐藏。