77问答网
所有问题
“将运算符作为非成员函数重载时必须定义为友元”这句话错在哪里?
如题所述
举报该问题
推荐答案 2013-09-14
运算符重载函数是在类的外部定义的,不定义为友元函数时,这个运算符重载函数只能访问类的公有数据成员,而不能访问类的私有数据成员;定义为友元函数时,既可以访问类的公有数据成员,也可以访问私有数据成员。所以当类中的数据成员是公有时,不用定义为友元函数~
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/W888NY8vN.html
其他回答
第1个回答 2012-06-05
声明为友元函数
相似回答
c++问题,下列关于
运算符重载
的描述中错误的是
答:
B C++里好像没类型
运算符
这个提法吧,应该是类型转换运算符,这个是只能
作为成员函数重载
,自己才能转换自己,这个是很明显的。C这个很简单,假如A是一个类,你
要定义
可以和INT相加,如果
定义为
类函数重载+,则只能这么调用A+27,如果27+A就不行,用友元就可以解决了,何
为友元
,就是A把27也认为是...
下列关于
运算符重载
的描述中,错误的是( )。
答:
【答案】:C C。【解析】除了·、*、→*、::、?:这五个
运算符
外,其他运算符都可以重载。=、[]、()、→以及所有的类型转换运算符只能作为成员函数重载。口
作为成员函数重载时
,应完成“下标访问”操作,使得向指定下标处的元素赋值或取值成为可能。
在C++中,什么是
运算符重载?
什么是虚
函数?
答:
运算符函数可以
定义为
它将要操作的类的成员(称为成员运算符函数),也可以定义为非类的成员,但是
非成员
的运算符函数大多是类的
友元函数
(称
为友元运算符函数
)。成员
运算符函数在
类中的声明格式为:class X{ //……type operator@(参数表);};其中type为函数的返回类型,@为所
要重载
的运算符符号...
...运行时出现错误:“operator=”
必须
是
成员函数
是什么意思?请大神们...
答:
Exmp(const Exmp&){ std::cout<<"Using Exmp(const Exmp&)_copy constructor."<<std::endl;//overload operator Exmp &operator=(const Exmp&){ std::cout<<"Using Exmp& operator=(const Exmp&)_overload operator."<<std::endl;return *this;} //copy constructor Exmp(const Ex...
c++题目解答
答:
4. 操作
符重载函数作为
类的成员和友元或者独立于类的区别:当操作符重载函数作为类的
成员函数时
,操作符重载函数的参数会比
作为友元
或者独立于类的操作符重载函数少一个参数,因为操作符重载类成员函数把调用该函数的第一个类的对象
作为函数
的第一个参数,也就是隐含的this指针指向调用该函数的第一个对象,所以会少一...
友元函数
有什么作用?
答:
友元函数
是可以直接访问类的私有成员的
非成员函数
。它是
定义在
类外的普通函数,它不属于任何类,但
需要在
类的定义中加以声明,声明时只需在友元的名称前加上关键字friend,其格式如下:friend 类型 函数名(形式参数);友元函数的声明可以放在类的私有部分,也可以放在公有部分,它们是没有区别的,都说明...
c++
友元函数
不能访问私有
成员
是为什么?
答:
当在VC6.0里
重载
<<和>>时就会出现这种问题,奇怪的是重载别的
运算符
(如++)时,同样访问了类的私有数据成员,却没有报错。
友元函数
是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和
成员函数
(否则当你...
大家正在搜
只能作为成员函数重载的运算符
在成员函数中进行双目运算符重载时
赋值运算符重载为什么要是成员函数
不能用成员函数重载的运算符
要求用成员函数重载的运算符是
友元函数重载运算符
能用友元函数重载的运算符是
可实现函数重载和运算符重载
只能作为成员函数重载
相关问题
定义类的非成员函数运算符重载必须声明为友元函数吗?
c++问题,下列关于运算符重载的描述中错误的是
为什么赋值运算符只能作为成员函数进行重载,而不能作为友元函数...
下列关于运算符重载的描述中,哪个是错误的: 运算符只能重载为...
[]、()、->、=这几个运算符如果要重载,为什么必须...
我在一个类里重载了赋值运算符,把它声明为类的友元, 编译出错...
为什么输出运算符重载不能是一个成员函数?而非得声明为友元?
问什么赋值运算符只能作为成员函数进行重载,而不能作为友元函数...