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在"动物类"中是保护访问权限,所以,在继承以后,也不可以在
类外通过犀牛对 象调用来访问
通过上面的学习,相信大家对保护访问权限有了一个初步了解,但是,如何灵活地运用这个知识点呢?那么,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对该知识点的理解和运用,以及“尽快进入到编程的状态”。
要达到灵活运用,是需要通过不停地反复训练才可以做到,所以,不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)