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

admin2015-05-30  29

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
    Numbe=8
    注意:错误的语句在//********error********的下面,修改该语句即可。
    1  #include
    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="<    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(1函数的返回值,必须做强制类型转化,即第3个标识下应改为“P=(int*)t.Get();”。
    (3)变量t可以使用Get()函数,说明t为CMyClass类对象。即第2个标识下应添加对象定义,故第2个标识下添加“CMyClass t:”。
转载请注明原文地址:https://kaotiyun.com/show/iPNp777K
0

最新回复(0)