使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果: (4,5) 7,8 (4,8) 注意:错误的语句在//********error******

admin2015-05-30  39

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:
    (4,5)
    7,8
    (4,8)
    注意:错误的语句在//********error********的下面,修改该语句即可。
    1    #include
    2    clas s CObj 0
    3    {
    4    publ ic:
    5    CObj0(int i,int j)
    6    {
    7     x=i ;
    8    y=j;
    9    }
    10    //********error********
    11   virtual void move(int a; int b)
    12    i
    13    x+=a;
    14    y+=b ;
    15    }
    16    void print()
    17    {
    18    cout<<"("<    19    }
    20   public:
    21    int x,y;
    22  };
    23  class cobj1:public cobj 0
    24    {
    25   public:
    26    //********error********
    27    cobj1(int i,int j,int k): (i,j)
    28    {
    29    m=k;
    30    n=1;
    31    }
    32    void print()
    33    {
    34    cout<    35    }
    36    void func()
    37    {
    38    move(3,5);
    39    }
    40    void display()
    41    {
    42    //********error********
    43    print();
    44    }
    45   private:
    46    int m,n;
    47    };
    48  void main()
    49  (
    50    CObj0 obj(4,5);
    51    obj.print();
    52    CObj1 obj1(1,3,7,8);
    53    obj1.func();
    54    obj1.print();
    55    obj1.display();
    56  }

选项

答案(1)virtual void move(int a,int b) (2)CObj1(inti,int j,int k,int 1):CObj0(i,j) (3)CObj0::print();

解析 程序中定义了CObj0和CObjl两个类,CObjl公有派生于CObj0,CObj0有两个public成员变量x和y,CObjl有2个private成员变量m和n,CObj0的print函数打印x和y的值,CObjl的print函数打印m和n的值,display函数调用基类的print函数打印CObj1的x和y的值。
    [解题思路]
    (1)编译程序可知第1标识下有错误,此处是声明虚函数,虚函数的声明方式为:virtual<类型说明符><函数名>(<参数表>),参数表中各参数之间应该用“,”隔开,因此第1个标识下应改为“virtual void move(int a,int b)”。
    (2)在主函数里“CObjl objl(1,3,7,8);”,可知构造函数CObj1()有四个参数,完成变量m、n、x和y的初始化,k和1赋值给m和n,i和j赋值给x和y,x和y的初始化可通过基类构造函数来完成对x和Y的初始化,第2个标识下应改为CObj1(int i,intj,int k,int 1):CObj0(i,j)。
    (3)由程序运行结果可知标识3下调用的是基类的print()函数,而“print();”是调用的派生类的print()函数,因此此时只能通过类名来直接调用print()函数,即第3个标识下应改为“CObj0::print();”。
转载请注明原文地址:https://kaotiyun.com/show/6JNp777K
0

最新回复(0)