本文记录一下知识点,以便以后查阅。这里面的可见性或者访问权限其实都可以从两个方面来考虑:对类(也就是类内部的成员)、对类实例化的对象。
一、对于类访问控制
当一个类被创建出来之后,类里面被声明为public、protected、private的成员的相互访问权限是什么样的呢?从一下四个方面来看。
public | protected | private | |
类成员是否可以访问 | yes | yes | yes |
类的实例化对象是否可以访问 | yes | no | no |
友元函数是否可以访问 | yes | yes | yes |
继承情况下的子类是否可以访问 | yes | yes | no |
二、有继承关系的时候来自于基类中的成员在子类中属性的变化情况
基类(父类) | public | protected | private |
公有继承 | public | protected | 不可见(不能访问) |
保护继承 | protected | protected | 不可见(不能访问) |
私有继承 | private | private | 不可见(不能访问) |
PS:
1.基类成员对派生类成员都是:公有和保护的成员是可见的,私有的的成员是不可见的。
2.基类成员对派生类实例化出来的对象来说:要看基类的成员在派生类中变成了什么类型的成员。如:私有继承时,基类的公有成员和私有成员都变成了派生类中的私有成员,因此对于派生类实例化对象来说基类的公有成员和私有成员就是不可见的,不能被访问。