C++ 保护访问权限

 

  在接下来的时间里面,我们准备为大家再介绍一种访问权限,而这种访问权限的名字叫做

"保护"(protected),而它的作用与我们前面所学习的"私有访问权限"(private)基本是上相同的。

 

  (1)保护访问权限在非继承情况下,在类中所设置的"属性与方法"只可以在类中访问,不可以在类外访问,这个与"私有访问权限"是一样的。

 

  (2)保护访问权限在继承情况下,在"基类"中所设置的"属性与方法",在继承的类中可以访问,但在继承类外不可以外访问

 

 

 

 

  接下来,我们就结合例子来作进一步的说明

 

例子1:

Class  DongWu   //动物类

{

  protected:

    void Attack(); //攻击的方法(保护访问权限)

    int Tail;    //尾 (保护访问权限)

  private:

    int Leg;  //腿

    int  x;    //移动的距离

  public:

    int head; //头

    int body;  //身

    DongWu() //构造函数

    {

     head = 1;

     body = 1;

     Leg = 4;

     Tail = 1;

    }

    void MX(); //移动的方法

};

 

void Dongwu::MX()

{

   x=x+1;  //MX是类中的方法,可以防问私有属性x

   body = 1;  //MX是类中的方法,可以防问公有属性body

}

 

void Dongwu::Attack()

{

   x=x+1;  //Attack是类中的方法,可以防问私有属性x

   body = 1;  //Attack是类中的方法,可以防问公有属性body

}

 

 

//犀牛类

Class  XiNiu :public  DongWu  //犀牛类通过公有权限public继承动物类DongWu

{

  public:

    int  Jiao; //角

    XiNiu()

    {

     head = 0;  //正确,head在动物类中的访问权限是公有,所以,可在继承的类XiNiu中访问

     body = 1;  //正确,body在动物类中的访问权限是公有,所以,可在继承的类XiNiu中访问

     Leg = 4;  //错误,Leg在动物类中的访问权限是私有,所以,不可在继承的类XiNiu中访问

     Tail = 1;  //正确,Tail在动物类中的访问权限是保护,所以,可在继承的类XiNiu中访问

    }

};

 

 

 

XiNiu  X1;   //定义一只犀牛对象

X1.head = 1; //正确,head属性是公有访问权限,所以,可以在继承以后,在类外通过犀牛对象访问

X1.MX();   //正确,方法MX是公有访问权限,所以,可以在继承以后的类外通过犀牛对象调用来访问

 

X1.Leg = 4;   //错误Leg属性在"动物类"中是私有访问权限,所以,在继承以后,也不可以在类外

          通过犀牛对象访问

X1.Attack();   //错误方法Attack在"动物类"中是保护访问权限,所以,在继承以后,也不可以在

          类外通过犀牛对 象调用来访问

 

 

 

 

  通过上面的学习,相信大家对保护访问权限有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”

 

  要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!

 

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练