问题 问答题

使用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(); }

答案

参考答案:

解析:(1) comp(int x=0,int y=0):a(x),b(y){}(2) a=x; b=y;(3) comp c; c.a=x. a+y. a;本题考查考生对于类的定义和友元函数定义的掌握,请注意(1)中的参数列表形式和(3)中对象使用“.”访问它的数据成员。

问答题 简答题
填空题