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

admin2019-01-19  26

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
    Number=8
    注意:错误的语句在//******error******的下面,修改该语句即可。
1  #include<iostream.h>
2  class CMyClass
3  {
4  public:
5    //******error******
6    void&Get()
7    {
8    return&Number;
9    }
10    void Set(int m)
11    {
12    Number=m;
13    }
14    void display()
15    {
16    cout<<’’Number=’’<<Number<<end1;
17    }
18  private:
19    int Number;
20  };
21  void main()
22  {
23    int* p;
24    //******error******
25
26    //******error******
27    p=t.Get();
28    *p=8;
29   t.display();
30  }

选项

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

解析 程序中定义了类CMyClass,含有一个成员变量Number,Get()返回Number的地址(指针),Set(int m)函数可改变成员变量的值,display()函数在屏幕上打印Number的值。
    (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:”。
转载请注明原文地址:https://jikaoti.com/ti/u2t0FFFM
0

最新回复(0)