问题详情

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


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

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

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

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

时间:2022-01-01 00:17 关键词:

答案解析

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