问题 单项选择题

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

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

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

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

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

答案

参考答案:C

解析: “+”作为双目运算符,在对其进行重载时,如果重载为成员函数,则只需要定义一个形参;如果重载为友元函数,则需要定义两个形参。从题干中可以看出,在重载函数声明中,没有friend关键字,却有两个形参,故会提示友元函数重载报错。

问答题
单项选择题