C++ 访问控制与继承
protected成员
前面我们介绍过protected表示这个成员可以被派生类和友元访问,但是不能被其他类访问。
此外,派生类的成员不能够访问基类的protected成员。
(如果派生类可以改变基类protected的成员,那么我们像上面的声明即可很简单的规避protected的只能够让派生类访问的机制了,f2只是C的友元,但是它可以改变B的protected成员,这是没道理的。
公有、私有和受保护继承
派生访问说明符是控制派生类用户对于基类的访问权限。
派生访问控制符还可以控制继承自派生类的新类的访问权限
友元和继承
就像友元不能传递一样,友元不能继承。
当一个类将另一个类声明为友元时,这种关系只对做出声明的类有效,对原来的类来说,友元的基类和派生类不具有特殊的访问能力。
默认的继承保护级别
默认情况下,struct关键字定义的派生类是public继承的,class关键字定义的派生类是private继承的。
注:我们最好显式的将继承方式声明出来,而不是依赖于默认继承机制。