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