使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为
Constructor,i=0,
Destructor
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include<iostream.h>
class TC
int i;
public:
TC();
void display();
~TC();
;
//******error******
TC:TC()
cout<<"Constructor"<<",";
i=0;
//******error******
TC:display()
cout<<"i="<<i<<","<<end1;
//******error******
TC:TC()
cout<<"Destructor"<<end1;
void main()
TC a;
a.display();
参考答案:应改为“TC::~TC()”。
解析: 在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::”,作用域运算符用来表示某个成员属于哪个类,使用格式为“<类名>::<成员函数>(<参数函数>),因此第1处应改为“TC::TC()”,默认构造函数没有参数。由第2处“TC::display()”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“void TC::display()”。由第3处的语句“TC::TC()”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“~”字符,用来与构造函数加以区别,因此第3处的语句应改为“TC::~TC()”。