使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
Number=7
Number=12
注意:错误的语句在//********error********的下面,修改该语句即可。
1 #include< iostream.h >
2 class CMyClass
3 {
4 public:
5 //******error******
6 CMyclass(int i):Number=i
7 {
8 ******error******
9 return Number;
10 }
11 void set(int i)
12 {
13 Number=i;
14 }
15 void display()
16 {
17 cout< < ''Number=''< < Number< < end1;
18 }
19 private:
20 int Number;
21 };
22 void main()
23 {
24 //******error******
25 CMyClass*p=new CMyClass;
26 p- >display();
27 p- >set(12);
28 p- >display();
29 return;
30 }
【正确答案】(1)CMyClas s(int i):Number(i)
(2)应删除:return Number;
(3)CMyClass *p=new CMyClass(7);
【答案解析】CMyClass类含有成员变量Number和多个成员函数,set(int i)函数可改变成员变量的值,display()函数在屏幕上打印成员变量的值。
(1)第1个标识下是声明构造函数,并使用初始化列表完成成员变量的初始化,可知第1标识下的初始化列表错误,正确的应该是“CMyClass(int i):Number(i)”。
(2)构造函数不能有返回值,不能用return来返回值,故第2个标识下应将“returnNumber;”删除。
(3)类实例在不指定构造函数的情况下,调用的是默认无参数的构造函数,此时成员变量Number是不确定的,在定义对象时应使用已定义的构造函数,根据输出结果可知p指向的对象的Number初始化值为7,故第3个标识下应改为“CMyClass*p=newCMyClass(7);”。