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

admin2020-06-29  60

问题 使用vC++6.O打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:
    (4,5)
    7,8
    (4,8)
    注意:错误的语句在//* * * * * * * * error* * * * * * * *的下面,修改该语句即可。
试题程序:
#include
class TC0
{
public:
TC0(int i,int j)
{
  x=i:
  y=j;
}
//* * * * * * * * error* * * * * * * *
virtual void move(int a;int b)
{
  x+=a:
  y+=b;
  }
  void print()
  {
  cout<<"("<}
public:
int x,y;
};
class TC1:public TC0
{
public:
//* * * * * * * * error* * * * * * * *
TC1(int i,int j,int k):(i,j)
{
m=k;
n=1:
}
void print()
{
cout<}
void func()
{
move(3,5);
}
void display()
{
//* * * * * * * * error* * * * * * * *
  print();
  }
  private:
  int m,n;
};
void main()
{
TC0 obj(4,5);
obj.print();
TC1 obj1(1,3,7,8);
obj1.func();
obj1.print();
obj1.display();
}

选项

答案(1)应改为“virtual void move(int a,int b)”。 (2)应改为“TC1(int i,int j,int k,int 1):TC0(i,j)”。 (3)应改为“TC0::print();”。

解析 由题可知第1处是声明虚函数,虚函数的声明方式为“virtual(类型说明符)(函数名)((参数表>)”,参数表中各参数之间应该用“,”隔开,因此第1处的语句应改为“virtual void move(int a,int b)”。在主函数的语句“TCI obj1(1,3,7,8);”中,可知构造函数TC1有4个参数,完成变量m、n、x和y的初始化,k和1赋值给m和n,i和j赋值给x和y,x和y的初始化可通过基类构造函数来完成对x和y的初始化、第2处的语句应改为“TC1(int i,int j,int k,int 1):TC0(i,j)”,第3处调用的是基类的print函数,而“print();”是调用的派生类的print函数,因此此时只能通过类名来直接调用print函数,即第3处应改为“TC0::print();”。
转载请注明原文地址:https://jikaoti.com/ti/sFA0FFFM
0

最新回复(0)