使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件tes00_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。 (1)定义comp的构造函数,函数含

admin2009-01-15  39

问题 使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件tes00_3.cpp,其中定义了用于表示复数的类comp,但类comp的定义并不完整。请按要求完成下列操作,将类comp的定义补充完整。
   (1)定义comp的构造函数,函数含参数x和y,它们都是in,型的数据,默认值都为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)中对象使用“.”访问它的数据成员。
转载请注明原文地址:https://jikaoti.com/ti/mMkiFFFM
0

最新回复(0)