c++不同继承方式的访问权限

1. 对每一种继承方式而言,基类中的成员以相关的权限作为派生类中的成员,但权限只降不升.

Child1试图以public的方式继承Father中的成员A,B,C.

最终权限: A-----public  B-----protected  C-----private

所以,只有A能以public的权限过继给Child,而B成员和C成员均以它们原来的权限:protected, private过继给Child.

Child2试图以protected的方式继承Father中的成员A,B,C.

最终权限: A----protected  B----protected  C----private

Child3试图以private的方式继承Father中的成员A,B,C.

最终权限: A----private  B----private  C----private

2. 在派生类中无法访问其基类原有的private成员.

故在Child1,Child2,Child3类中均无法访问C,但均可访问A,B.

3. 在类的对象中,无法访问类的protected和private成员,

故Child1的对象无法访问B,C, Child2和Child3的对象无法访问A,B,C.


class Father{
public:
    A;
protected:
    B;
private:
    C;
};

class Child1:public Father{
};

class Child2:protected Father{
};

class Child3:private Father{
};

Child1 child1;
Child2 child2;
Child3 child3;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值