单选题已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。A Value operator+(Value v,int i);B Value operator+(Value v=value,int i);C Value operator+(Value v ,int i=0);D Value operator+(Value v=value,int i=0);

题目
单选题
已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。
A

Value operator+(Value v,int i);

B

Value operator+(Value v=value,int i);

C

Value operator+(Value v ,int i=0);

D

Value operator+(Value v=value,int i=0);


相似考题
参考答案和解析
正确答案: B
解析:
“+”是二元运算符,以非成员函数的形式重载,则其第一操作数是对象本身,i为第二操作数。
更多“已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。”相关问题
  • 第1题:

    ( 14 )下列有关运算符函数的描述中,错误的是

    A )运算符函数的名称总是以 operator 为前缀

    B )运算符函数的参数可以是对象

    C )运算符函数只能定义为类的成员函数

    D )在表达式中使用重载的运算符相当于调用运算符重载函数


    正确答案:C

  • 第2题:

    已知在一个类体中包含如下函数原型:VOLUME OPERATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )。

    A.这是运算符-的重载运算符函数

    B.这个函数所重载的运算符是一个一元运算符

    C.这是一个成员函数

    D.这个函数不改变类的任何数据成员的值


    正确答案:B
    解析: 本题考核运算符的重载。题中语句为运算符“-”是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。

  • 第3题:

    在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。

    A、作为友元函数重载的1元运算符

    B、作为成员函数重载的1元运算符

    C、作为友元函数重载的2元运算符

    D、作为成员函数重载的2元运算符


    参考答案:B

  • 第4题:

    己知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是

    A.这是运算符-的重载运算符函数

    B.这个函数所重载的运算符是一个一元运算符

    C.这是一个成员函数

    D.这个函数不改变类的任何数据成员的值


    正确答案:B
    解析:重载的运算符是二元的。

  • 第5题:

    多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但运算符[]只能作为类的______函数重载。


    正确答案:成员
    成员 解析:此题考查的是运算符重载。在C++中,“=”、“[]”、“()”、“->”以及所有的类型转换符只能作为成员函数重载,不能重载为友元函数。

  • 第6题:

    已知Value是一个类,Value是Value的一个对象。 下列以非成员函数形式重载的运算符函数原形中,正确的是( )。

    A.Valueoperator+(Valuev,inti);

    B.Valueoperator+(Valuev=value,inti);

    C.Valueoperator+(Valuevinti=O);

    D.Valueoperator+(Valuev=value,inti=O);


    正确答案:B
    B。【解析】非成员函数的重载运算符函数的格式为operator+,是运算符+重载函数。

  • 第7题:

    前置自增运算符++重载为类的友元函数的形式为【 】,重载为类的成员函数的形式为【 】。 (设类为A,类对象为a)


    正确答案:friend A operator++(A &) a. operator++().
    friend A operator++(A &) a. operator++().

  • 第8题:

    下列说法正确的是 ______。

    A.一元运算符重载为成员函数没有参数

    B.一元运算符重载为友员函数没有参数

    C.二元运算符重载为友员函数有一个参数

    D.二元运算符重载为成员函数有二个参数


    正确答案:A

  • 第9题:

    下面是重载双目运算符-的成员函数原形,其中最符合-原来含义的是( )。

    A.ValueValue::operator-(Value)

    B.ValueValue::operator-(int)

    C.Value&Value::operator-(Value)

    D.Value&Value::operator-(Value&)


    正确答案:A

  • 第10题:

    下列关于“方法重载”的描述中,哪些选项是不正确的?()。

    • A、方法重载可以扩充现有类的功能
    • B、构造函数不可以重载
    • C、方法ConsoleW(int_valuE.是方法ConsoleW(string_valuE.的重载
    • D、方法重载即“同样的方法名但传递的参数不同”

    正确答案:B

  • 第11题:

    单选题
    已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。
    A

    Value operator+(Value v,int i);

    B

    Value operator+(Value v=value,int i);

    C

    Value operator+(Value v ,int i=0);

    D

    Value operator+(Value v=value,int i=0);


    正确答案: B
    解析:
    “+”是二元运算符,以非成员函数的形式重载,则其第一操作数是对象本身,i为第二操作数。

  • 第12题:

    单选题
    下列运算符函数中,肯定不属于类Value的成员函数的是(  )。
    A

    Value operator+(Value);

    B

    Value operator-(Value,Value);

    C

    Value operator*(int);

    D

    Value operator/(Value);


    正确答案: C
    解析:
    运算符作为非成员函数时,由于没有隐含this指针,因此所有的操作数必须出现在参数表中。B项,函数形参有两个操作数,必然是非成员函数;ACD三项都只有一个形参变量,有可能是要求两个操作数的成员函数。

  • 第13题:

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

    A )可以通过运算符重载在 C++ 中创建新的运算符

    B )赋值运算符只能重载为成员函数

    C )运算符函数重载为类的成员函数时,第一操作数是该类对象

    D )重载类型转换运算符时不需要声明返回类型


    正确答案:A

  • 第14题:

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

    A.可以通过运算符重载在C++中创建新的运算符

    B.赋值运算符只能重载为成员函数

    C.运算符函数重载为类的成员函数时,第一操作就是该类对象

    D.重载类型转换运算符时不需要声明返回类型


    正确答案:A
    解析:运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第15题:

    下面关于自定义类的运算符重载的说法中,正确的是()。

    A.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同

    B.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数

    C.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员

    D.所有运算符都可以以类友元形式进行重载


    正确答案:AC

  • 第16题:

    下列关于运算符重载的叙述中,正确的是

    A.运算符重载为成员函数时,若参数表中无参数,则重载的是一元运算符

    B.一元运算符只能作为成员函数重载

    C.二元运算符重载为非成员函数时,参数表中有一个参数

    D.C++中可以重载所有的运算符


    正确答案:C
    解析:C++进行运算符重载时,“.”、“::”、“*”、“sizeof”等运算符不能重载,单目运算符和双目运算符既可以作为成员函数重载,也可以作为友元函数重载。

  • 第17题:

    下面关于运算符重载的描述中,正确的是( )。

    A.一元运算符只能作为成员函数来重载

    B.运算符重载作为成员函数时,如果参数表中无参数,重载的是一元运算符

    C.二元运算符重载为非成员函数时,参数表中有一个参数

    D.C++中可以重载所有的运算符


    正确答案:B
    解析:一元运算符可以作为全局函数重载,所以选项A) 错误。二元运算符重载为非成员函数时,参数表中有两个参数,所以选项C)也错误。C++中有些运算符不能被重载,如域运算符(::),条件运算符(?:)等,具体哪些运算符不能被重载与编译器有关,所以选项D) 错误。

  • 第18题:

    已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是

    A.Value operator+(Value v, int i);

    B.Value operator+(Value v=value, int i);

    C.Value operator+(Value v, int i=0);

    D.Value operator+(Value v=value, int i=0);


    正确答案:B
    解析:类名operator+(类名String & s1,类名String & s2)。

  • 第19题:

    已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是( )。

    A.Value operator+(Value v,int i);

    B.Value operator+(Value v=value,int i);

    C.Value operator+(Value vint i=0);

    D.Value operator+(Value v=value,int i=0);


    正确答案:B
    解析: 本题考查的是for循环语句。执行循环语句,变量i从50递减,每次减2,所以循环会执行25次,输出 25个’*’。

  • 第20题:

    在重载一运算符时,若运算符函数的形参表中没有参数,则不可能的情况是( )。

    A.该运算符是一个单目运算符。

    B.该运算符函数有一个隐含的参数this。

    C.该运算符函数是类的成员函数。

    D.该运算符函数是类的友元函数。


    正确答案:D

  • 第21题:

    一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【 】个参数。


    正确答案:√
    1 解析:双目运算符(即二元运算符),作为成员函数重载时形参表中只有一个参数,对应于第二操作数,而第一操作数就是对象本身,以this指针的形式隐藏在形参表中。

  • 第22题:

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

    可以通过运算符重载在C++中创建新的运算符

    B

    赋值运算符只能重载为成员函数

    C

    运算符函数重载为类的成员函数时,第一操作数是该类对象

    D

    重载类型转换运算符时不需要声明返回类型


    正确答案: B
    解析:
    运算符重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第23题:

    单选题
    下列关于“方法重载”的描述中,哪些选项是不正确的?()。
    A

    方法重载可以扩充现有类的功能

    B

    构造函数不可以重载

    C

    方法ConsoleW(int_valuE.是方法ConsoleW(string_valuE.的重载

    D

    方法重载即“同样的方法名但传递的参数不同”


    正确答案: A
    解析: 暂无解析

  • 第24题:

    单选题
    已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(  )。
    A

    这是运算符-的重载运算符函数

    B

    这个函数所重载的运算符是一个一元运算符

    C

    这是一个成员函数

    D

    这个函数不改变类的任何数据成员的值


    正确答案: C
    解析:
    运算符“-”有一元二元两种,在本题中它是一个二元运算符,不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。