问题 单项选择题

有如下的运算符重载函数定义:double operator+(int i,int k){return double(i+1);}但定义有错误,对这个错误是准确的描述是【 】

A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的

B.两个int型参数的和也应该是int型,而这里将+的返回类型声明为double

C.没有将运算符重载函数声明为某个类的友元

D.C++已经提供了求两个int型数据之和的运算符+,不能再定义同样的运算符

答案

参考答案:A

解析:这道题对"+"运算符的重载,违反了"重载的运算符应该体现为原运算符的功能在新的数据类型上的延伸,它的使用应当使程序中算法的表达显得更流畅、自然,使阅读程序的人在不借助于其他说明资料的情况下就能够正确理解。"这一原则。

单项选择题
单项选择题