友元函数是全局函数么?
发布网友
发布时间:2022-04-01 16:06
我来回答
共3个回答
热心网友
时间:2022-04-01 17:36
我这学期学了C++,对友元和友元函数有一点认识,提供以下内容,仅供参考。
(1)友元的来历
根据类的封装性,一般将数据成员声明为私有成员,在外部不能直接访问它,只能通过类的公有成员函数对私有成员进行访问。有时,需要频繁调用成员函数来访问私有成员,这样系统开销就比较大。C++从高效的角度出发,提供了友元机制,使被声明为友元的全局函数或者其他类可以直接访问当前类中的私有成员,又不改变其私有成员的访问权限。
(2)友元的作用
友元不是类的成员函数,但能直接访问类的所有成员,又不改变受访问类成员的访问权限,避免了频繁调用类的成员函数。使用友元可以节约开销,提高程序的效率。
(3)友元不一定是全局函数
友元可以是一个全局函数,也可以是一个类的成员函数,还可以是一个类。如果友元是函数,则称为友元函数。如果友元是一个类,则称为友元类。友元类的所有成员函数都是友元函数,可以访问被访问类的所有成员。友元不是被访问类的成员,所以它不受类的访问权限(public、private、protected)影响。友元声明以关键字friend开始,注意只能出现在被访问类的定义中。
不充一点:友元不是纯面向对象的,那是因为友元并非被访问类的成员却可以任意修改类的私有成员,破坏了类的封装性。
C++有点高深,好好学吧~~~~
热心网友
时间:2022-04-01 18:54
不一定
friend只是在一个类里面标识可以访问这个类的私有成员的函数而已,只是一个声明,这个函数可以是全局函数,也可以是其他类的成员函数。
热心网友
时间:2022-04-01 20:28
正在弄类中友元函数重载的问题,如上所说,友元函数不一定是全局变量
友元友元类
友元除了可以是函数外,还可以是类,意味着友元类的所有成员函数可以访问被友元化的类的私有成员。考虑String类的“等于操作符”定义:全局函数`operator==(const String &str1, const String &str2)`与成员函数`String::operator==(const String &rhs) const`之间的区别,主要在于前者不能直接引用Stri...
运算符重载为成员函数或全局函数怎么从形式上来判断呢?友元函数呢?
如a+b,左侧的a是一个自己定义的类的对象,所以是成员函数,cout<<a, <<的左边是cout 是一个ostream对象,非你自己定义的对象,所以是友元
friend什么意思
类的外部,也就是通过实例来访问私有(private)或保护(protected)成员,这是被禁止的。但从实用性来说,的确有时很需要在外部访问,C++增加了一种称之为“友元(friend)”函数的申明,将“特权”赋给一些函数(可以是全局函数,也可以是其它类的成员函数),使之能够访问该类的私有和保护成员。友元函数必...
友元函数有什么作用?
友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下:friend 类型 函数名(形式参数);友元函数的声明可以放在类的私有部分,也可以放在公有部分,它们是没有区别的,都说明...
C++友原函数求教?
友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率(即减少了类型检查和安全性检查等都需要的时间开销),但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。...
友元函数有什么作用?
友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。
求解。。有关于C++运算符定义。。
如果是全局函数(友元函数)重载,参数个数等于其操作数个数,具体答案详细原因如下:value operator+(value);这个可能是类成员重载双目+,也就是加法,也可能是全局函数(友元函数)重载单目+,即正号 value operator-(value,value);-号可能是单目,意思是负号,是双目时候为减法,根据上述原则可知肯定不...
怎样解决友元函数在类还没定义之前定义了的问题,我以为是类没有前置...
友元只能在相应的类中定义,类A的友元定义在类A里面 类B的友元也只能在类B中定义
友元函数有什么作用,它主要用在哪些情况下?
友元函数的作用就是提供直接访问对象的私有成员的接口。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。使用情况:1)必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分;...
python类和函数的区别
2、函数:分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。三、规则不同 1、类:实质是一种引用数据类型,类似于byte、short、int(char)、long、float、double等基本数据类型,不同的是它是一种复杂的数据类型。2、...