c++问题,下列关于运算符重载的描述中错误的是

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:19:14
下列关于运算符重载的描述中错误的是:
A)::运算符不能重载
B)类型运算符只能作为成员函数重载
C)将运算符作为非成员函数重载时必须定义为友元
D)重载[]运算符应完成“下标访问”操作

请说明原因

A 这个是重载的规则,有几个运算符为了不置于混淆所以不能重载,包括了域作用符::

B C++里好像没类型运算符这个提法吧,应该是类型转换运算符,这个是只能作为成员函数重载,自己才能转换自己,这个是很明显的。

C这个很简单,假如A是一个类,你要定义可以和INT相加,如果定义为类函数重载+,则只能这么调用A+27,如果27+A就不行,用友元就可以解决了,何为友元,就是A把27也认为是自己的一个类属性来调用+函数。所以非成员函数重载时必须定义为友元

D[]这个有点模棱两可的,一般[]都是当做下标访问来使用,如果你不这么,你即使把[]定义成取地址,相加都可以,这个没有强行规定。但是题目说的只是“应”,我觉得说正确也不过分,毕竟程序应该符合规范。

综上,选D合适一些

d吧,其他都觉得对