public、protected、private修饰类的成员
public成员可以通过对象来访问。
private成员不能通过对象来访问。
protected成员不能通过对象访问,但是当存在继承关系时,基类中的protected成员可以在派生类中使用。
public、protected、private指定继承方式
继承方式中的public、protected、private用来指明基类成员在派生类中的最高访问权限。
public继承方式:
- 基类中所有 public 成员在派生类中为 public 属性;
- 基类中所有 protected 成员在派生类中为 protected 属性
- 基类中所有 private 成员在派生类中不能使用。
protected继承方式:
- 基类中的所有 public 成员在派生类中为 protected 属性;
- 基类中的所有 protected 成员在派生类中为 protected 属性;
- 基类中的所有 private 成员在派生类中不能使用。
private继承方式:
- 基类中的所有 public 成员在派生类中均为 private 属性;
- 基类中的所有 protected 成员在派生类中均为 private 属性;
- 基类中的所有 private 成员在派生类中不能使用。
注意:基类的private成员可以被派生类继承,并且(成员变量)会占用派生类对象的内存,它只是在派生类中不可见,导致无法使用。
注意:在派生类中访问基类private成员的唯一方法就是借助基类的非private成员函数。
改变访问权限
使用using关键字可以改变基类成员在派生类中的访问权限,例如,将public改为private、将protected改为public。
但是不能改变private成员的访问权限,因为基类中private成员在派生类中是不可见的。