题库 题库

【简答题】

试题六(共15分)
  阅读以下说明和C++代码,将解答写在答题纸的对应栏内。
[说明]
  已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类SuperClass中的getSum为纯虚拟函数‘程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。
[C++代码]
  行号  代码
   O1 #include <iostream>
   02 using namespace std;
   03 class SuperClass {
   04  private:
   05  int i;
   06 public:
   07  SuperClass(){ i = 5;}
   08  virtual iht getValueO { return i; }
   09  virtual int getSum()=0;
   lO };
   11 class SubClass:public SuperClass{
   12 int j;
   13 public:
   14  SubClass(int j) :j(0){
   15   ___(1)___ =j;   //用参数j的值更新数据成员
   16  };
   17  int getValue(){return j;}
   18  int getSum(){
   19   return ___(2)___ getValue() + j;
   20  }
   21 };
   22 void main(void) {
   23  SuperClass s = new SubClass(-3);
   24  cout << s->getValue() << " ";
   25  cout << s->getSum() << endl;
   26  delete s;
   27 }

参考答案

 (1) this->j
 (2) SuperClass
  错误更正结果:SuperClass * s = new SubClass(-3)
  变量j的值:0
  运行结果: -3  2

相关试题