美文网首页
C++继承权限和继承方式

C++继承权限和继承方式

作者: 安然_fc00 | 来源:发表于2017-04-05 20:51 被阅读0次

类成员的访问权限

1.jpg

继承方式

2.jpg
  1. 派生类的成员(及友元)对基类成员的访问权限只与基类中的访问说明符有关。派生列表中访问说明符的作用是控制派生类用户对于基类成员的访问权限,注意是派生类的用户。
  2. 基类成员在派生类中的访问权限不得高于继承方式中指定的权限。也就是说,继承方式中的 public、protected、private 是用来指明基类成员在派生类中的最高访问权限的。
  3. 不管继承方式如何,基类中的 private 成员在派生类中始终不能使用(不能在派生类的成员函数中访问或调用)。如果希望基类的成员能够被派生类继承并且毫无障碍地使用,那么这些成员只能声明为 public 或 protected;只有那些不希望在派生类中使用的成员才声明为 private。
  4. 如果希望基类的成员既不向外暴露(不能通过对象访问),还能在派生类中使用,那么只能声明为 protected。
  5. 实际上,基类的 private 成员是能够被继承的,并且(成员变量)会占用派生类对象的内存,它只是在派生类中不可见,导致无法使用罢了。private 成员的这种特性,能够很好的对派生类隐藏基类的实现,以体现面向对象的封装性。
  6. 在派生类中访问基类 private 成员的唯一方法就是借助基类的非 private 成员函数,如果基类没有非 private 成员函数,那么该成员在派生类中将无法访问(除非使用下面讲到的 using 关键字)。

使用using声明

通过在类的内部使用using声明语句,我们可以将该类的直接或间接基类中的任何可访问成员(非私有成员)标记出来,改变其访问权限。

class A{
protected:
    string name;
};

class B:publicA{
public:
    using A::name;//将继承来的name成员的访问权限改为public
};
int main()
{
      A me;
      me.name="aaaaa";//可以访问name成员了
      cout<<me.name<<endl;
      return 0;
}

相关文章

  • C++继承和派生

    C++通过继承关系,实现了代码的可重用性。 public表示继承方式,也表示访问权限 一、继承方式和访问权限的影响...

  • C++继承权限和继承方式

    类成员的访问权限 继承方式 派生类的成员(及友元)对基类成员的访问权限只与基类中的访问说明符有关。派生列表中访问说...

  • 第十三章 类继承(4)c++的三种继承方式

    (四)c++的三种继承方式 c++有三种继承方式,分别是公有继承,私有继承和保护继承。 (1)公有继承 这是最常用...

  • C++访问权限-继承-继承方式

    几年不碰C++,如今看来已路人。 C++是我的入门语言,编程处女地就是给了她,但我明显没有耕耘好,那个时候不知道是...

  • 继承

    继承的方式 class默认继承权限:privatestruct默认继承权限:public 赋值兼容规则----pu...

  • C++继承,静态成员,const成员

    继承 继承的方式有三种 公共继承 保护继承 私有继承 访问权限publicprotectedprivate对本类可...

  • Geekband-job3-note

    1、继承 C++类的3种继承方式,分别是public继承,protected继承,private继承。最常用的还是...

  • C/C++基础知识(四)——继承、多态和虚函数

    c++中的继承使用冒号(:),可以指定继承方式(private,protect,public),支持继承多个父类,...

  • C++——继承方式,多继承

    一、继承方式 1.1 overload和shadow的区别 shadow: 父子类中,只要函数名相同,就会造成sh...

  • c++语法2

    接上篇我们继续学习静态成员、友元函数、继承、多重继承,继承访问权限等 静态成员与友元函数:c++中静态成员与jav...

网友评论

      本文标题:C++继承权限和继承方式

      本文链接:https://www.haomeiwen.com/subject/dbsaottx.html