问答题 使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: Number=7 Number=12 注意:错误的语句在∥********error********的下面,修改该语句即可。 #1nclude<10Stream.h> ClasS CMyClasS { public: ∥********error******** CMyClass(int i):Number=i { error return Number; } void set(int i) { Number=i; } void display() { cout<<”Number=”<display(); P一>set(12); P一>display(); return; }
【正确答案】正确答案:(1)CMyClass(int i):Number(i) (2)应删除:return Number; (3)CMyClass*P=new CMyClass(7),
【答案解析】解析:(1)第1个标识下是声明构造函数,并使用初始化列表完成成员变量的初始化,可知第1标识下的初始化列表错误,正确的应该是“CMyClass(int i):Number(i)”。 (2)构造函数不能有返回值,不能用return来返回值,故第2个标识下应将“return Number;”删除。 (3)类实例在不指定构造函数的情况下,调用的是默认无参数的构造函数,此时成员变量Number是不确定的,在定义对象时应使用已定义的构造函数,根据输出结果可知P指向的对象的Number初始化值为7,故第3个标识下应改为“CMyClass*P=new CMyClass(7);”。