使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为: Constructor,i=O, Destructor 注意:错误的语句在∥********4******

admin2021-06-10  77

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为:
    Constructor,i=O,
    Destructor
    注意:错误的语句在∥********4********的下面,修改访语句即可。
#include
class CObj
{
    int i;
public:
    CObj();
    void display();
    -CObj();
  };
  ∥********error********
  CObj:cobj()
  {
    cout<<“Constructor"‘<“.”,
    i=0;
  }
  {
  CObj:display()
  {
    cout<<“i=”<  }
     ∥********error********
  CObj:cobj()
  {
    cout<<“Destructor”<  }
  void main()
  {
    Cobj a;
    a.display();
  }

选项

答案(1)CObj::CObj() (2)VOid cobj::display() (3)CObj::~CObj()

解析 (1)在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符(::),作用域运算符用来表示某个成员属于哪个类,使用格式为:<类名>::<成员函数>(<参数函数>),因此第1个标识下应改为CObj::CObi(),默认构造函数没有参数。
(2)第2个标识下“COb.j:display()”,从其后的语句看,这是在类外实现COb.j函数,因此也有作用域运算符使用错误问题,display()函数返回值为void,因此第2个标识下应改为void CObj::display()。
(3)第3个标识下“CObj:CObj()”,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名字和类名相同,并在前面加“~”字符,用来与构造函数加以区别,因此第3个标识下应改为CObj::一CObj()。
转载请注明原文地址:https://jikaoti.com/ti/B9h0FFFM
0

最新回复(0)