(一四〇)访问控制:protected-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

(一四〇)访问控制:protected

简介:

关键字protected的作用,和关键字private的作用有一定相似。

 

①类外无法访问protected的成员(和私有部分类似);——对于类外方法,他就像私有成员一样

 

②类的派生类,可以访问protected成员(就像访问公有成员那样);——对于派生类方法,他就像公有成员一样

 

 

 

例如:

class Name
{
protected:
	string name;
	...
}
class Man :public Name
{
	...
public:
	void show() { cout << name << endl; }
}

这样是可以的。

而:

void reset(const Name&na)
{
	name = na;
}



由于reset ()不是Name的友元函数,因此是不能这样做的。

 

 

对成员函数来说,保护访问控制protected很有用,因为他可以让派生类直接访问数据成员,而不需要基类有返回private部分的方法。

 

 

但书上说,最好对类数据成员采用私有访问控制(private),不要使用保护访问控制;同时通过基类方法使派生类能够访问基类数据。

 

 

 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

云安全开发者的大本营

其他文章