niusouti.com

已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为A.a.operator++(1)B.operator++(A)C.operator++(a,1)D.a.operator++()

题目

已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为

A.a.operator++(1)

B.operator++(A)

C.operator++(a,1)

D.a.operator++()


相似考题
更多“已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为A.a.opera ”相关问题
  • 第1题:

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

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

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

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

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


    正确答案:C
    解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的对象,则c1.operator+(c2)与c1+c2含义相同。如果+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2含义相同。所以通过题目给出的两个表达式可看出“/”是作为成员函数重载的,“++”是作为非成员函数重载的。

  • 第2题:

    如果表达式x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为【 】。


    正确答案:x=y.operator*(z)
    x=y.operator*(z)

  • 第3题:

    如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为:

    A.operator++

    B.operator++(a)

    C.operator++(a,1)

    D.a.operator++()


    a.operator++()

  • 第4题:

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

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

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

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

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


    正确答案:C
    运算符函数可以定义为类的友元函数所以C选项错误。

  • 第5题:

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

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

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

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

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


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