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