C++中继承方式对访控属性的影响

一、C++中继承方式有public、protected、private三种。

先说明一下public、protected、private这三种成员的访问属性的控制,注意这个我还没有涉及到继承方式哦(^ _ ^).

1.public成员在类内、子类中、外部都可以随意访问。

2.protected成员在类内和派生中都可以访问,即只能被类内或者派生类访问,而不能被派生类派生的对象所访问,派生的对象属于外部,而外部则不可以访问。

3.private成员只能在类中才能访问,外部不能访问。

总结如下:

                     访控属性  基类 子类 外部 友元
  
public          公有          OK    OK   OK   OK
protected    保护          OK    OK   NO   OK
private         私有          OK    NO   NO   OK

二、类的继承方式对访控属性的影响

1.记住这句话:当试图通过一个子类对象访问该对象从其基类继承的成员时,才需要考虑继承方式对访控属性的影响。

A->B->C(A派生B,B派生C)
1)B中访问A的成员:不需要考虑B从A的继承方式
2)C中访问A的成员:需要考虑B从A的继承方式
3)如在外部创建对象B b;通过b访问A的成员:需要考虑B从A的继承方式

2.继承方式对访控属性的影响

主要影响如下:

1)公有继承对访控属性没有影响

2)保护继承基类的public部分变为protected,protected和private部分不变

3)私有继承基类的public、protected和private部分都变为private

总结如下:

基类中的   公有子类继承方式     保护子类继承方式     私有子类继承方式
----------------------------------------------------------------------------------------------
公有成员           公有成员                      保护成员                    私有成员
保护成员           保护成员                      保护成员                    私有成员
私有成员           私有成员                      私有成员                    私有成员

三、总结

私有继承仅仅将基类作为子类的实现工具,同时又不希望基类的公有接口通过子类而扩散。

保护继承允许基类的公有接口在子类中使用,但是却不能对外部扩散。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值