c++ protected成员及继承

C++中说基类protected成员只能通过派生对象访问,不能通过通过基类对象访问(当然不能是私有继承)。并在原文中给出了一个示例。

但是并不是在任何地方都可以通过派生对象访问基类的protected成员的,只能在此派生类内部才能如此进行。也就是只能在类内部的对象,或者传入到内内部的对象或者引用才能有这个访问权限。而且派生类中只能通过该类型对象访问上一级基类的protected成员,不能访问基类的基类保护成员。

其访问权限如下表所示:

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。

  1. 公有继承(public)

  公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。

  2. 私有继承(private)

  私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。

  3. 保护继承(protected)

  保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。

-----------------------------------------------------------
  private继承
  基类成员   private成员    public成员   protected成员
  内部访问    不可访问        可访问        可访问
  对象访问    不可访问        不可访问     不可访问
  ------------------------------------------------------------
  public继承
  基类成员   private成员   public成员    protected成员
  内部访问    不可访问       可访问            可访问
  对象访问    不可访问        可访问    类定义中可访问,外部不可访问
  ------------------------------------------------------------
  protected继承
  基类成员  private成员   public成员    protected成员
  内部访问  不可访问        可访问            可访问
  对象访问  不可访问        不可访问        不可访问
  ------------------------------------------------------------

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值