【C++】protected继承和private继承没有区别,一毛一样 ;protected成员和private成员有且仅有一点不同

本文详细解析了C++中三种继承方式:public、protected和private继承,阐述了它们如何影响派生类内部及外部对基类成员的访问,并通过具体示例说明了间接访问和间接的间接访问的概念。
不同的继承方式的影响主要体现在:
  1. 派生类内部,派生类里的非基类成员怎么去访问从基类继承过来的成员?
  2. 派生类外部(派生类的对象),怎么去访问从基类继承过来的成员?
不同的继承方式:
  1. public继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:
    public(类内:可访问(直接访问);类外:可访问(直接访问)),protected(类内:可访问(直接访问);类外:可访问(间接访问)),private(类内:可访问(间接访问);类外:可访问(间接的间接访问))
  2. protected继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:
    protected(类内:可访问(直接访问);类外:可访问(间接访问)),protected(类内:可访问(直接访问);类外:可访问(间接访问)),private(类内:可访问(间接访问);类外:可访问(间接的间接访问))
  3. private继承:基类public成员,protected成员,private成员的访问属性在派生类中分别变成:
    private(类内:可访问(直接访问);类外:可访问(间接访问)),private(类内:可访问(直接访问);类外:可访问(间接访问)),private(类内:可访问(间接访问);类外:可访问(间接的间接访问))
  4. 注:
      间接访问:例如基类中定义共有函数A,A可以调用基类的私有成员;在派生类中定义公有函数B,用来调用A,那么就达到了派生类间接访问基类私有成员的目的。
      间接的间接访问:接上,定义派生类的对象c,c.B这种形式就达到了派生类外间接的间接访问基类私有成员的目的。
总结
  1. protected继承和private继承一毛一样!
  2. protected成员和private成员有且仅有一个不同:
    派生类可直接调用基类的protected成员(无论哪种继承方式),不能直接调用基类的private成员(无论哪种继承方式)。
致谢

  感谢网友shichen2014的精彩总结,里面有相关的代码实现,如果各位看官能自己实现一遍代码,相信会更有收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值