对于基类的私有成员,不论派生类型如何,派生类及派生类的使用者都无权访问;
对于基类的保护成员,不论派生类型如何,派生类可以访问,但派生类的使用者无权访问;
对于基类的公有成员,按派生类型,分三类情况:
私有派生:继承后变成派生类的私有成员,派生类可以访问,但派生类的使用者不能访问;
保护派生:继承后变成派生类的保护成员,派生类可以访问,但派生类的使用者不能访问;
公有派生:继承后变成派生类的公有成员,派生类和派生类的使用者都能访问;
派生类可以访问:在派生类的成员函数中可以访问,即在派生类的成员函数中可以被使用;
派生类的使用者:即定义的派生类的对象,或者使用该派生类的函数;
派生类的使用者不能访问:即使用对象访问符号“.”不能访问其成员;也即在(派生)类外不能访问;
派生类的继承权与访问权,总结如下两个表:
基类成员性质 |
派生类型 |
在派生类中的性质 |
在派生类中能否访问 |
派生类对象能否访问 |
Private |
Private 私有派生 |
不可访问 |
不能访问 |
不能访问 |
Protected |
Private |
可以访问 |
不能访问 |
|
Public |
Private |
可以访问 |
不能访问 |
|
Private |
Protected 保护派生 |
不可访问 |
不能访问 |
不能访问 |
Protected |
Protected |
可以访问 |
不能访问 |
|
Public |
Protected |
可以访问 |
不能访问 |
|
Private |