使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件test20_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。
(1)定义comp的构造函数,函数含参数x和y,它们都是int型的数据,默认值都为0,请使用参数列表的形式分别将类数据成员a和b初始化x和y的值。请在注释“//**1**”之后添加适当的语句。
(2)完成类comp的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员s和b,请在注释“//**2**”之后添加适当的语句;
(3)完成类comp的友元函数friend compplus(comp &x,comp &y)的定义,该函数首先要定义一个comp类的对象c,然后将参数x和y的数据成员a与b分别相加并分别赋值给c的成员a和b,最后返回c的值,请在注释“//**3**”之后添加适当的语句。输出结果如下:
10+20i
2+3i
result:12+23i
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test20_3.cpp清单如下:
#include <iostream.h>
class comp
int a;
int b;
public:
//**1**
friend comp plus(comp &x, comp &y);
void input(int x,int y)
//**2**
void output ( )
cout<<a<<’+’<<b<<"i"<<end1;
;
comp plus(comp &x, comp &y)
//**3**
c.b=x.b+y.b;
return c;
void main()
comp x(10,20),y,z;
y.input(2,3);
z=plus(x,y);
x.output();
y.output();
cout<<"result:";
z.output();
参考答案:
(A)
comp(int x=0,int y=0):a(x),b(y){}
(B)
a=x;
b=y;
(C)
comp c;
c.a=x. a+y. a;
解析:
本题考查考生对于类的定义和友元函数定义的掌握,请注意(1)中的参数列表形式和(3)中对象使用“.”访问它的数据成员。