使用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是指向当前对象的指针,应该使用“->”访问成员。