使用VC6打开考生文件夹下的工程test13_1,此工程包含一个源程序文件test13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下: n=2 n=5 n=7 源程序文件test13_1清单如下:

admin2009-01-15  56

问题 使用VC6打开考生文件夹下的工程test13_1,此工程包含一个源程序文件test13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
   n=2
   n=5
   n=7
   源程序文件test13_1清单如下:
   #include<iostream.h>
   class Sample
   {
    int n;
   public:
   /*************** found ************+***/
    Sample()
    Sample(int i){n=i;}
   /***************** found ********+**********/
    void add(Sample s1,Sample s2)
   /***************** found ****************/
    {
        this.n=s1->n+s2.n;
    }
   void  disp(){cout<<"n="<<n<<endl;}
   };
   void main()
   {
     Sample s1(2),s2(5),s3;
     s3.add(&s1,s2);
     s1.disp();
     s2.disp();
     s3.disp();
   }

选项

答案(1)错误:Sample() 正确:Sample(){} (2)错误:void add(Sample s1,Sample s2) 正确:void add(Sample *s1,Sample s2) (3)错误:this.n=s1->n+s2.n; 正确:this->n=s1->n+s2.n;

解析 (1)主要考查考生对于类的成员函数定义的掌握,应该使用1)作为空的函数体,这是不能省略的;
(2)主要考查考生对于指针调用的掌握,根据函数体中对于s1的使用可以看出,它是一个指针类型的变量,调用时实参应该使用“*”,形参使用“&”;
(3)主要考查this指针的使用,this是指向当前对象的指针,应该使用“->”访问成员。
转载请注明原文地址:https://kaotiyun.com/show/AOID777K
0

最新回复(0)