问题 问答题

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

单项选择题
单项选择题