C、operator==(a,b)
D、operator==(b,a)
2、如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A、a.operator++() C、operator++(a,1)
B、operator++(a) D、operator++(1,a)
3、双目运算符的调用格式是( )
A、双目运算符 左运算对象 右运算对象 C、左运算对象 双目运算符 右运算对象
B、双目运算符 右运算对象 左运算对象 D、右运算对象 双目运算符 左运算对象
4、一个程序中数组a和变量k定义为“int a[5][10],k;”,且程序中包含有语句“a(2,5)=++k*3;”,则此语句中肯定属于重载操作符的是( )。
A、( ) C、++
B、= D、*
5、下面是重载单目运算符-的成员函数原形,其中最符合-原来含义的是( )。
A、Value Value::operator-(Value); C、Value& Value::operator-(Value);
B、Value Value::operator-(int); D、Value& Value::operator-(Value&);
第二题、多项选择题(每题2分,5道题共10分) 1、关于运算符重载,下列说法错误的是( )。
A、所有的运算符都可以重载。
B、通过重载,可以使运算符应用于自定义的数据类型。 C、通过重载,可以创造原来没有的运算符。 D、通过重载,可以改变运算符的优先级。
2、下面不是运算符new重载的正确格式的是( )
A、void *类名::operator new(size_t size, int x, int y); B、int *类名::operator new(size_t size, int x, int y); C、void *类名::operator new(size_t size);
D、void *类名::operator new(int x, int y,size_t size);
3、重载del_ete运算符的格式错误的是( )
A、void * operator del_ete(void*); B、void * operator del_ete(void*,参数表); C、void * operator del_ete(参数表); D、void * operator del_ete();
4、下面关于逗号运算符的说法正确的是( )
A、逗号运算符是多目运算符
B、逗号运算符的表达式为“左运算数,右运算数”,返回值为右运算数的值。 C、逗号运算符可以重载为成员函数,形参只带右运算数。 D、逗号运算符的返回值为左运算数的值。
5、下面重载类型转换运算符的语句正确的是( )
A、class X {X operator (int);}; B、class X {operator(X, int);}; C、class X {operator Z( );}; D、class X {operator Y( );};
第三题、判断题(每题1分,5道题共5分)
1、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。
正确
错误
2、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。
正确
错误
3、重载运算符保持原运算符的优先级和结合性不变。
正确
错误
4、重载比较运算符函数的返回值必须是bool类型。
正确
错误
5、重载=运算符没有实际意义,因为系统会为每一个类自动生成赋值运算符。