使用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();
参考答案:
(A)错误:Sample()
正确:Sample(){}
(B)错误:void add(Sample sA,Sample sB)
正确:void add(Sample *sA,Sample sB)
(C)错误:this.n=sA->n+sB.n;
正确:this->n=sA->n+sB.n;
解析:
(1)主要考查考生对于类的成员函数定义的掌握,应该使用1)作为空的函数体,这是不能省略的;
(2)主要考查考生对于指针调用的掌握,根据函数体中对于s1的使用可以看出,它是一个指针类型的变量,调用时实参应该使用“*”,形参使用“&”;
(3)主要考查this指针的使用,this是指向当前对象的指针,应该使用“->”访问成员。