问答题 使用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();}
【正确答案】正确答案:(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个标识下添加“CMyclass t;”。