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

admin2020-07-23  35

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:
(4,5)
    7,8
(4,8)
    注意:错误的语句在∥********error********的下面,修改该语句即可。
#include
clasS Cobj 0
{
public:
    cobj 0(int i,int j)
    {
    x=i ;
    y=j ;
    }
  ∥********4********
    virtual void move(int a;int b)
    {
    x+=a;
    y+=b;
    }
    void print()
    {
    cout<<¨(“<<<“)”<    }
public:
    int x,y;
};
classocbj 1:public cobj 0
{
public:
  ∥********error********
   cobj 1(int i,int J,int k):
(i,j)
    {
    m=k;
    n=1;
    }
    void print()
    {
    cout<    }
    void func()
    {
    move(3,5);
    }
    void di splay()
    {
    ∥********eror********
    print();
    }
private:
    int m,n;
  };
  void main()
  {
    cobj 0 obj(4,5);
    obj.print();
    cobj 1 obj 1(1,3,7,8);
    obj 1.func();
    obj 1.print();
    obj 1.display();
  }

选项

答案(1)virtual Void move(int a,int b) (2)CObj 1(int i,int j,int k,int 1):CObj 0(i,j) (3)CObj 0::print();

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

最新回复(0)