下面是“二维向量” vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量x和y对应相加,然后返回作为相加结果的新对象。那么应该在横线上填入的语句是( )。 class vector2D { private: double x; //x分量 double y; //y分量 public: vector2D(double x0=0,double y0=0) :x(x0),y(y0) {} void show(cout<<' ('<<', '<<y<<') ';} ________

题目

下面是“二维向量” vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量x和y对应相加,然后返回作为相加结果的新对象。那么应该在横线上填入的语句是( )。 class vector2D { private: double x; //x分量 double y; //y分量 public: vector2D(double x0=0,double y0=0) :x(x0),y(y0) {} void show(cout<<' ('<<', '<<y<<') ';} _________________________; }; vector2D :: operator + (vector2D a) { return vector20(x+a.x,y+a.y); }

A.vector2D operator + (vector2D b)

B.vector2D operator + (vector2D &b)

C.void operator + (vector2D)

D.int operator + (vector2D b)


相似考题
更多“下面是“二维向量” vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量x和y ”相关问题
  • 第1题:

    下列关于运算符重载的叙述中,错误的是

    A.::运算符不能重载

    B.类型转换运算符只能作为成员函数重载

    C.将运算符作为非成员函数重载时必须定义为友元

    D.重载[ ]运算符应完成“下标访问”操作


    正确答案:C
    解析: C是错误的,其余为规定。

  • 第2题:

    有如下的运算符重载函数定义: 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)。

  • 第3题:

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

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

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

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

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


    正确答案:D

  • 第4题:

    运算符函数调用格式的表达式y/x++与表达式y.operator/(operator++(x,0))的含义相同,由此可看出( )。

    A.“/”和“++”都是作为成员函数重载的

    B.“/”和“++”都是作为非成员函数重载的

    C.“/”是作为成员函数重载的,“++”是作为非成员函数重载的

    D.“/”是作为非成员函数重载的,“++”都是作为成员函数重载的


    正确答案:C
    解析:运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即y.operator*(z)或者operator*(y,z);另一种是通过运算符构成表达式,即y*z。因为“++”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀“抖”时必须多一个虚拟参数int。

  • 第5题:

    下列关于运算符重载的描述中,错误的是( )。

    A.::运算符不能重载

    B.类型转换运算符只能作为成员函数重载

    C.将运算符作为非成员函数重载时必须定义为友元

    D.重载口运算符应完成“下标访问”操作


    正确答案:C
    C。【解析】除了·、*、→*、::、?:这五个运算符外,其他运算符都可以重载。=、[]、、→以及所有的类型转换运算符只能作为成员函数重载。口作为成员函数重载时,应完成“下标访问”操作,使得向指定下标处的元素赋值或取值成为可能。