“友元类”

来源:互联网 发布:哪个网站买鞋靠谱 知乎 编辑:程序博客网 时间:2024/06/06 19:03

1 什么是友元类

当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。


2 友元类能做什么

友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们应该注意的是,我们把类B设置成了类A的友元类,但是这并不会是类A成为类B的友元。说白了就是:甲愿意把甲的秘密告诉乙,但是乙不见得愿意把乙自己的秘密告诉甲。


3 友元类的声明方法和其用法

声明友元类的方法其实很简单,只要我们在类A的成员列表中写下如下语句:

friendclass B;

  这样一来,类B就被声明成了类A的友元。注意,类B虽然是类A的友元,但是两者之间不存在继承关系。这也就是说,友元类和原来那个类之间并没有什么继承关系,也不存在包含或者是被包含的关系,友元类和我上一篇博文《谈谈:C++类的“包含”机制》中的包含是完全不一样的!



4 友元类的一个具体例子

......


5 Summary

关于友元类,我反正是这样认为的,因为友元类有可能会破坏数据的安全性,我们还是少用为好啊!

友元的作用在于提高程序的运行效率(即减少了类型检查和安全性检查等都需要的时间开销),但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。


出处: http://www.cnblogs.com/uniqueliu/archive/2011/08/02/2125590.html









0 0
原创粉丝点击