友元函数是全局函数么?

友元函数是全局函数么?

如题赐教

我这学期学了C++,对友元和友元函数有一点认识,提供以下内容,仅供参考。
(1)友元的来历
根据类的封装性,一般将数据成员声明为私有成员,在外部不能直接访问它,只能通过类的公有成员函数对私有成员进行访问。有时,需要频繁调用成员函数来访问私有成员,这样系统开销就比较大。C++从高效的角度出发,提供了友元机制,使被声明为友元的全局函数或者其他类可以直接访问当前类中的私有成员,又不改变其私有成员的访问权限。
(2)友元的作用
友元不是类的成员函数,但能直接访问类的所有成员,又不改变受访问类成员的访问权限,避免了频繁调用类的成员函数。使用友元可以节约开销,提高程序的效率。
(3)友元不一定是全局函数
友元可以是一个全局函数,也可以是一个类的成员函数,还可以是一个类。如果友元是函数,则称为友元函数。如果友元是一个类,则称为友元类。友元类的所有成员函数都是友元函数,可以访问被访问类的所有成员。友元不是被访问类的成员,所以它不受类的访问权限(public、private、protected)影响。友元声明以关键字friend开始,注意只能出现在被访问类的定义中。
不充一点:友元不是纯面向对象的,那是因为友元并非被访问类的成员却可以任意修改类的私有成员,破坏了类的封装性。
C++有点高深,好好学吧~~~~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-25
不一定
friend只是在一个类里面标识可以访问这个类的私有成员的函数而已,只是一个声明,这个函数可以是全局函数,也可以是其他类的成员函数。本回答被网友采纳
第2个回答  2010-07-08
正在弄类中友元函数重载的问题,如上所说,友元函数不一定是全局变量