问题 填空题

使用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()”。

单项选择题
单项选择题 案例分析题