zoukankan      html  css  js  c++  java
  • 继承、成员访问权限

    //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.成员访问的几种方式

    • 类内成员访问:类成员函数访问自己的成员变量,无权限限制。类成员函数访问基类成员,由基类访问控制权限决定。
    • 用户访问对象成员:如前。
  • 相关阅读:
    BEGIN2 序列求和
    BEGIN2 序列求和
    《算法竞赛入门经典》 习题45 IP网络(IP Networks,ACM、ICPC NEERC 2005,UVa1590)
    C#中char空值的几种表示方式
    C#中char空值的几种表示方式
    C#中() =>是什么意思
    C#中() =>是什么意思
    C# Task 暂停与取消
    C# Task 暂停与取消
    C# WinForm设置透明
  • 原文地址:https://www.cnblogs.com/helo-blog/p/3292604.html
Copyright © 2011-2022 走看看