派生类的继承权与访问域

对于基类的私有成员,不论派生类型如何,派生类及派生类的使用者都无权访问;
对于基类的保护成员,不论派生类型如何,派生类可以访问,但派生类的使用者无权访问;
对于基类的公有成员,按派生类型,分三类情况:
私有派生:继承后变成派生类的私有成员,派生类可以访问,但派生类的使用者不能访问;
保护派生:继承后变成派生类的保护成员,派生类可以访问,但派生类的使用者不能访问;
公有派生:继承后变成派生类的公有成员,派生类和派生类的使用者都能访问;
 
派生类可以访问:在派生类的成员函数中可以访问,即在派生类的成员函数中可以被使用;
派生类的使用者:即定义的派生类的对象,或者使用该派生类的函数;
派生类的使用者不能访问:即使用对象访问符号“.”不能访问其成员;也即在(派生)类外不能访问;
 
派生类的继承权与访问权,总结如下两个表:
基类成员性质
派生类型
在派生类中的性质
在派生类中能否访问
派生类对象能否访问
Private
Private
私有派生
不可访问
不能访问
不能访问
Protected
Private
可以访问
不能访问
Public
Private
可以访问
不能访问
Private
Protected
保护派生
不可访问
不能访问
不能访问
Protected
Protected
可以访问
不能访问
Public
Protected
可以访问
不能访问
Private
Public
公有派生
不可访问
不能访问
不能访问
Protected
Protected
可以访问
不能访问
Public
Public
可以访问
可以访问
 
基类成员性质
派生类型
在派生类中的性质
在派生类中能否访问
派生类对象能否访问
 
Private
Private
不可访问
不能访问
不能访问
Protected
不可访问
不能访问
不能访问
Public
不可访问
不能访问
不能访问
 
Protected
Private
Private
可以访问
不能访问
Protected
Protected
可以访问
不能访问
Public
Protected
可以访问
不能访问
 
Public
Private
Private
可以访问
不能访问
Protected
Protected
可以访问
不能访问
Public
Public
可以访问
可以访问
 
派生类不能访问基类的私有成员,若要访问必须使用基类的接口,即通过其成员函数。
若要直接访问,有两种方法:
在类定义体中增加保护段(protected),将基类私有成员提供派生类访问的部分放置在保护段;派生类对基类的保护成员的继承与公有成员类似,若为公有派生,则在派生类中也处于保护段;若为私有派生,则在派生类中变为私有成员。
将需要访问基类私有成员的派生类成员函数声明为基类的友元。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值