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

admin2016-10-28  22

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:Number=8
注意:错误的语句在//******error******的下面,修改该语句即可。
#include<iostream.h>
class CMyClass
{
public:
//******error******
void&Get()
{
return&Number;
}
void Set(int m)
{
Number=m;
}
void display()
{
cout<<"Number="<<Number<<endl;
}
private:
int Number;
};
void]main()
{
int*]p;
//******error******

//******error******
p=t.Get(),
*p=8;
t.display()j
}

选项

答案(1)void* Get() (2)添加语句:CMyClass t: (3)p=(int*) t.Get();

解析 (1)Get()的返回的是“return&Number;”,即返回Number的地址,主函数中p为整型指针,但是“p=t.Get();”有错误,因为Get()函数返回的不是整型指针,而应该是空指针(void),空指针可强制类型转换成其他类型的指针,第1个标识下应改为“void* Get()”。
(2)由于Get()函数返回空指针(void),要使p指向Get()函数的返回值,必须做强制类型转化,即第3个标识下应改为“p=(int*)t.Get();”。
(3)变量t可以使用Get()函数,说明t为CMyClass类对象。即第2个标识下应添加对象定义,故第2个标识F添加“CMyClass t:”。
转载请注明原文地址:https://kaotiyun.com/show/T7Np777K
0

最新回复(0)