问题
问答题 案例分析题
阅读以下说明和C++代码,将解答写在答题纸的对应栏内。
已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和,类SuperClass中的getSum为纯虚拟函数,程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。【C++代码】
答案
参考答案:
(1)this->j
(2)SuperClass:: 错误更正结果为:SuperClass*s=new SubClass(-3); 变量j的值为0 运行结果为-3,2
解析:本题主要考查了C++程序语言中类成员变量的初始化、父类成员方法的调用、对象的构造等。(1)处要求用参数j的值更新数据成员,为避免与同名变量j冲突,应加this前缀,所以(1)处应为"this->j";(2)处要求调用父类方法getValue(),但为了和子类方法相区别,应加前缀,所以(2)处应为"SuperClass::"。23行中,SuperClasss已经定义了一个对象,后面不能再使用new再分配一个指针。程序运行到第15行之前j的值应为0,最后程序输出的结果应为3和2。