c1.operator*(c2.operator+(c1))
c1.operator+(c2.operator*(c1))
c1.operator*(c1.operator+(c2))
c2.operator+(c1.operator*(c2))
第1题:
( 14 )下列有关运算符函数的描述中,错误的是
A )运算符函数的名称总是以 operator 为前缀
B )运算符函数的参数可以是对象
C )运算符函数只能定义为类的成员函数
D )在表达式中使用重载的运算符相当于调用运算符重载函数
第2题:
已知类X成功地重载了- -、+、=、[ ]这几个运算符。则其中肯定属于成员函数的运算符是:
A.前置- -和[ ]
B.=和[ ]
C.[ ]和后置- -
D.+和=
第3题:
多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但运算符[]只能作为类的______函数重载。
第4题:
运算符“+”允许重载为类成员函数,或者非成员函数。若用operator+(c1,c2)这样的表达式来使用运算符“+”,应将“+”重载为【 】 函数。
第5题:
为类Matrix重载下列运算符号时,只能作为Matrix类成员函数重载的运算符是( )。
A.+
B.=
C.<<
D.++
第6题:
已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为
A.a.operator++(1)
B.operator++(A)
C.operator++(a,1)
D.a.operator++()
第7题:
使用VC6打开考生文件夹下的工程test38_3。此工程包含一个test38_3.cpp,其中定义了类complex,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)添加类complex的无参数的构造函数的定义,将私有成员real和imag都初始化为0。请在注释“//**1**”之后添加适当的语句。
(2)添加类complex的带两个参数的重载构造函数,两个参数r和i都是double类型,要求将r赋值给私有成员real, i赋值给私有成员imag,同时允许调用时参数i可是省略,请在注释“//**2**”之后添加适当的语句。
(3)完成类complex重载加法函数的定义,该函数直接返回一个类complex的对象,同时把参数对象c的实部real和虚部imag分别与当前对象对应部分分别相加,请在注释“//**3**”之后添加适当的语句。
(4)完成类complex的友元函数print的定义,使其以格式“real+imagi”输出,请在注释“//**4**”之后添加适当的语句。
源程序文件test38_3.cpp清单如下;
include <iostream.h>
class complex
{
public:
// ** 1 **
// ** 2 **
{
real=r;imag=i;
}
complex operator+(complex & c);
friend void print(complex &c);
private:
double real,imag;
};
complex complex::operator+(complex & c)
{
// ** 3 **
}
// ** 4 **
cout<<c.real<<"+"<<c.imag<<"i"<<endl;
}
void main( )
{
complex c1(2.0,3.0),c2(4.0,-2.0),c3;
c3=c1+c2;
print(c3);
c3=c3+complex(3.5);
print(c3);
}
第8题:
前置自增运算符++重载为类的友元函数的形式为【 】,重载为类的成员函数的形式为【 】。 (设类为A,类对象为a)
第9题:
在C++中,如果在类中重载了函数调用运算符(),那么重载函数调用的一般形式为:()
第10题:
(表达式)对象
(表达式表)对象
对象(表达式)
对象(表达式表)
第11题:
+
=
<<
++
第12题:
赋值运算符只能作为类的成员函数重载
默认的赋值运算符实现了“深层复制”功能
重载的赋值运算符函数有两个本类对象作为形参
如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符
第13题:
( 24 )下列关于运算符重载的描述中,错误的是
A )可以通过运算符重载在 C++ 中创建新的运算符
B )赋值运算符只能重载为成员函数
C )运算符函数重载为类的成员函数时,第一操作数是该类对象
D )重载类型转换运算符时不需要声明返回类型
第14题:
运算符函数调用格式的表达式:y/x++与表达式:y.operator/(operator++(x,O))含义相同,由此可看出()。
A.“/”和“++”都是作为成员函数重载的
B.“/”和“++”都是作为非成员函数重载的
C.“/”是作为成员函数重载的,“++”是作为非成员函数重载的
D.“/”是作为非成员函数重载的,“++”都是作为成员函数重载的
第15题:
若要重载+、=、<<、==和[]运算符,则必须作为类成员重载的运算符是
A.+和=
B.=和<<
C.==和<<
D.=和[]
第16题:
已知类X成功地重载了- -、=、+、和[]这几个运算符,则其中肯定属于成员函数的运算符是( )。
A.+和=
B.[]和后置--
C.=和[]
D.前置- -和[]
第17题:
下面是复数类complex的定义,其中作为友元函数重载的运算符“--”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。
class complex
{
private:
int real;
int imag;
public:
complex(int r=0,int i=0):real(r),imag(i){}
void show ()
{
cout<<real<<(imag<0?"-":"+")<<imag<<'i';
}
______;
};
complex& operator -- (complex &c)
{
c.real --;
return c;
}
第18题:
已知类Ben中将二元运算符“/”,重载为友元函数,若c1、c2是Ben的两个对象当使用运算符函数进行显式调用时,与表达式c1/c2等价的表示为______。
第19题:
下列关于运算符函数的描述中,错误的是( )。
A.运算符函数的名称总是以0perator为前缀
B.运算符函数的参数可以是对象
C.运算符函数只能定义为类的成员函数
D.在表达式中使用重载的运算符相当于调用运算符重载函数
第20题:
一个双目运算符作为类的成员函数重载时,重载函数的参数表中有【 】个参数。
第21题:
一个单目运算符作为类的成员函数重载时有()个参数;如果作为独立函数重载,则有()个参数。
第22题:
a.operator++(1)
operator++(a)
operator++(a,1)
a.operator++()
第23题:
“/”和“++”都是作为成员函数重载的
“/”和“++”都是作为非成员函数重载的
“/”是作为成员函数重载的,“++”是作为非成员函数重载的
“/”是作为非成员函数重载的,“++”都是作为成员函数重载的