• 继承、成员访问权限


    //add helo 2014.6.4

    类成员的访问位置:

    1.类定义范围内,主要是指函数定义的范围内,该范围内类成员访问无限制。

    2.类定义范围外,如在main()函数中访问,有访问权限限制。

    //add end

    1.用户访问继承类对象权限:

    即在类定义外访问类对象成员数据或调用成员函数,例如如下代码:

     1 class base
     2 {
     3 public:
     4 int item_public;
     5 private:
     6 int item_private;
     7 };
     8 
     9 int main()
    10 {
    11  base a;
    12 //用户访问类对象成员
    13  a.item_public=0;//ok, 访问权限为public
    14  a.item_private=1; //error, 访问权限为private
    15 }

    a.用户访问继承类对象的成员时,可将类成员分为两类

    • 继承类自定义成员:由继承类定义的权限决定
    • 基类成员:由继承方式决定访问权限 
    class base
    {
    public:
    int item_public;
    protected:
    int item_protected;
    };
    
    class derived :private base
    {
     public:
    int item_d_public;
    int func()
    {
    return  item_public;//基类成员相对继承类成员的访问权限不因继承的方式改变
    }
    }
    
    int main()
    {
     derived d;
    d.item_d_public //ok;
    d.item_public //error ,此处item_public 对于用户的权限为private
                           //继承方式影响用户调用继承类对象基类部分的权限
    }

    b.继承方式影响用户调用继承类对象基类部分的权限,继承类内访问基类成员的权限不改变。

    2.成员访问的几种方式

    • 类内成员访问:类成员函数访问自己的成员变量,无权限限制。类成员函数访问基类成员,由基类访问控制权限决定。
    • 用户访问对象成员:如前。
  • 相关阅读:
    lamada基本语法
    idea 的全局搜索始终是上次的文本
    虚拟机中en33没有IP解决方法
    IDEA设置
    mysql主从配置
    linux安装mysql5.7(rpm方式)
    Jenkins+maven+github自动部署项目
    linux安装Jenkins
    linux wget安装jdk
    关于spring框架JdbcTemplate中的命令模式
  • 原文地址:https://www.cnblogs.com/helo-blog/p/3292604.html
Copyright © 2020-2023  润新知