( 33 )有如下的运算符重载函数定义:double operator +(int i, int k){ return double(i+k); }但 定义有错误,对这个错误最准确的描述是A ) + 只能作为成员函数重载,而这里的 + 是作为非成员函数重载的B ) 两个 int 型参数的和也应该是 int 型,而这里将 + 的返回类型声明为 doubleC )没有将 运算符重载函数声明为某个类的友元D ) C++ 已经提供了求两个 int 型数据之和的运算符 + ,不能再定义同样的运算符

题目

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

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

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

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

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


相似考题
更多“( 33 )有如下的运算符重载函数定义:double operator +(int i, int k){ return double(i+k); }但 ”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:D
    解析: 此题考查的是运算符的重载。C++语言规定,不能作为非成员函数重载的运算符有=、[]、()、->以及所有的类型转换运算符,故选项A)错误:运算符重载对返回值类型没有限制,故选项B)错误;C++并不强制要求非成员重载的运算符一定是某个类的友元,所以选项C)错误;题目中重载的“+”运算符的两个参数都是int类型,而C++已经提供了求两个int型数据之和的运算符+,编译器无法区分应该调用哪一个,所以应该选择选项D)。

  • 第2题:

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

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

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

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

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


    正确答案:D

  • 第3题:

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

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

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

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

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


    D

  • 第4题:

    下列运算符重载函数的原型错误的是( )。

    A.Volume operator-(double,double);

    B.double Volume::operator-(double);

    C.Volume Volume::operator-(Volume);

    D.Volume operator-(Volume,Volume);


    正确答案:A
    解析:运算符重载也是一种函数重载。函数重载要求编译器能够唯一地确定调用一个函数时应该执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。也就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,无法实现重载。选项A重载的减号运算符与C++默认提供的两个double相减运算无法区别。

  • 第5题:

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

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

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

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

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


    D