一、继承时的权限问题
0、没有继承时的情况
类中的public
成员对 派生类的对象 obj 是 可见 的
类中的protected 成员对 派生类的对象 obj 是 不可见 的
类中的private
成员对 派生类的对象 obj 是 不可见 的
权限继承的问题分为2类:派生类对象、派生类中的成员(非基类的)。
如果是protected继承的话,则在派生类对象的访问权限上,等于private继承时,对基类成员的权限;在派生类成员的访问权限上,等于public继承时,对基类成员的访问权限
1、派生类的对象的访问权限
//public 继承时,派生类的对象 obj 只能访问 基类的 public 成员
//protected 继承时,派生类的对象 obj 不能访问 基类的 任何 成员
//private 继承时,派生类的对象 obj 不能访问 基类的 任何 成员
2、派生类的访问权限
//派生类的成员只能访问基类中的public/protected成员,而不能访问private成员
3、深层总结
//派生的继承权限作为一个参照,高于该权限的成员降为该权限,低于的保持不变
如:
//public
继承时,派生类中的基类成员,其权限不变
//protected 继承时,派生类中的基类成员,public的降为protected,protected、private的不变
//private
继承时,派生类中的基类成员,权限全降为private
//无论哪种派生方式,基类中的private成员在派生类中都是不可见的。也就是说,基类中的private成员不允许外部函数或派生类中的任何成员访问。
二、虚函数表问题
待续...