首页 新闻 会员 周边

C++中 为什么要有 友元函数???

0
悬赏园豆:5 [待解决问题]

既然已经有了public 修饰符,那么直接用这个不就成了嘛,干嘛要用一个friend呢?

 

它和public 有哪些区别?在什么情况下才用的?谢谢!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2013-07-21 18:56
< >
分享
所有回答(8)
0

友元函数是一些不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。

举个简单的例子:一个聚会中,有一个舞台,大家都可以去跳舞,而包厢则进不去,VIP就可以了

这个例子不知道好理解不?

qq122755189 | 园豆:299 (菜鸟二级) | 2013-07-21 19:18
1

可以理解为中国特色的走后门。

地质灾害 | 园豆:262 (菜鸟二级) | 2013-07-24 19:44
2

友元函数可以访问私有成员. 可以理解为是private给他的特权

过客名 | 园豆:202 (菜鸟二级) | 2013-08-16 00:26
0

友元的使用主要是为了提高效率和方便编程。有时候,普通函数需要直接访问一个类的保护或私有数据成员,如果没有友元机制,则只能将类的数据成员声明为公共的,然后却导致任何函数都可以无约束的访问它了。在类里声明一个普通函数,标上friend,就变成了该类的友元,可以访问该类的一切成员

需要友元的另外一个原因是为了方便重载操作符的使用。

友元函数不是成员函数,它是类的朋友,因而可以访问类的全部成员。在类的内部只能声明它的函数原型,加上friend关键字。

猿人谷 | 园豆:215 (菜鸟二级) | 2013-08-31 16:37
0

友元函数是独立的,简单点就是类似类外部定义的函数了,提供友元功能是为了让函数可以访问类中私有变量

使用的话是按需来走的

还有中应用就是操作符的重载了~

andy1987 | 园豆:490 (菜鸟二级) | 2013-09-04 19:52
0

如果你愿意读英文,可以看这篇介绍

http://www.parashift.com/c++-faq/friends.html

 

我个人的看法C++里面加上friend完全是C++的创始人为了讨好各种各样的用户而往C++里面加的奇奇怪怪的东西。

不能说friend没用,而是说friend这个东西精巧的普通人都用不好。

 

 

 

嗷嗷 | 园豆:757 (小虾三级) | 2013-09-18 13:16
0

C++中友元函数不属于类,不是类的成员函数,它的存在提供了外部函数访问类对象私有成员的权限,换句话说,这个类的对象在友元函数内部可以表现私有的成员。  

就像一种社会现象:“关系”,“走后门”

Fedel | 园豆:232 (菜鸟二级) | 2013-09-26 20:17
0

friend是在软件设计中 共享与封装矛盾产生的一个解决方案

18fanna | 园豆:210 (菜鸟二级) | 2013-10-06 22:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册