使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: Number=7 Number=12 注意:错误的语句在//******error******的下面,修改 该语句即可。 #includ

admin2016-10-28  20

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
Number=7
Number=12
注意:错误的语句在//******error******的下面,修改
该语句即可。
#include<iostream.h>
class CMyClass
{
public:
//******error******
CMyClass(int i):Number=i
{
//******error******
return Number;
}
void set(int i)
{
Number=i;
}
void display()
{
cout<<"Number="<<Number<<endl;
}
private:
int Number;
};
void main()
{
//******error******
CMyClass*p=new CMyClass;
p->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);”。
转载请注明原文地址:https://kaotiyun.com/show/W7Np777K
0

最新回复(0)