问答题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果是: nember=1 nember=10 nember=100 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。#include<iostream.h>Class TestClass{public: TestClass(int i){ nember=i; } void SetNember(int m){ nember=m; } int GetNember()const{ return nember; } void Print()conSt{ cout<<"nember="<<nember<<endl; }private: int nember;};void main(){ //*******error******** TestClass obj1; obj1.Print(); TestClass obj2(3); //*******error******** obj1.nember=10; //********error******** TestClass.SetNember(100); obj1.Print(); obj2.Print();}
【正确答案】正确答案:(1)TestClass obj1(1); (2)obj1.SetNember(10); (3)obj2.SetNember(100);
【答案解析】解析:(1)第1个标识下,“TestClass obj1;”语句是声明TestClass类的对象obj1,根据TestClass类构造函数的定义TestClass(int i),存在整型参数,并且题目要求第一个输出结果为1,所以补全参数l,即第1个标识下的“TestClass obj1(1);”。 (2)第2个标识下的“obil.nember=10:”应该是调用成员函数SetNember赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“obj1.SetNember(10);”。 (3)类是对象的抽象,而对象是类的具体实例。第3个标识下“TestClass.SetNember(100);”语句中的TestClass为类,并不是对象,这里应该是使用定义的对象,即obj2,修改为“obj2.SetNember(100);”。