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

admin2020-05-14  36

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

选项

答案(1)CMyClass(int i):Number(i) (2)应删除:return Number; (3)CMyClasS*P=new CMyClass(7);

解析 CMyClass类含有成员变量Number和多个成员函数,set(int i)函数可改变成员变量的值,display()~数在屏幕上打印成员变量的值。
    [解题思路]
    (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/3M8p777K
0

最新回复(0)