itgle.com

已知类SubClass的getSum方法返回其父类成员i与类SubClass成员i的和,类SuperClass中的getSum为纯虚拟函数,程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。[C++代码]01 inclUde<iostream>02 using namespace std;03 class SuperClass {04 private:05 int i;06 pub

题目

已知类SubClass的getSum方法返回其父类成员i与类SubClass成员i的和,类SuperClass中的getSum为纯虚拟函数,程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。

[C++代码]

01 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;

10 };

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 tout<<s->getSum()<<endl;

26 delete s;

27 }


相似考题
更多“已知类SubClass的getSum方法返回其父类成员i与类SubClass成员i的和,类SuperClass中的getSum为纯 ”相关问题
  • 第1题:

    已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和;类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22行语句时成员变量i的值,最后给出程序运行后的输出结果。

    [Java代码]

    行号 代码

    01 public class UainJava{

    02 public static void main(String[]args){

    03 SuperClass s=new SubClass();

    04 System.out.printin(s.getValue());

    05 System.out.printIn(s.getSum()):

    06 }

    07 }

    08 abstract class SuperClass {

    09 private int i;

    10 public SuperClass(){i=5;}

    11 public int getValue(){

    12 return i:

    13 }

    14 public final abstract int getSum():

    15 }

    16 class SubClass extends SuperClass{

    17 int j;

    18 public SubClass(){

    19 this(-3);

    20 }

    21 public SubClass(int j){

    22 (1) .j=j;

    23 }

    24 publiC int getValue()(return j;}

    25 public int getSum(){

    26 return (2) .getValue()+j;

    27 }

    28


    正确答案:(1) this (2) super 错误更正结果为:public abstractint getSum(); 变量i的值为5 运行结果为: -3 2
    (1) this (2) super 错误更正结果为:public abstract,int getSum(); 变量i的值为5 运行结果为: -3 2 解析:本题主要考察了Java程序语言中类成员变量的初始化、父类成员方法的调用、对象的构造等。(1)处要求用参数j的值更新数据成员,为避免与同名变量j冲突,应加this前缀,所以(1)处应为this,(2)处要求调用父类方法getValue(),但为了和子类方法相区别,应加前缀super,所以(2)处应为super。程序14行getSum函数是一个抽象函数,在SubClass子类中将被继承实现,所以该函数不可以被定义为final类型,因此应该去掉final关键字;当程序运行到22行之前时父类构造函数已执行,所以i值为5。最后程序输出的结果应为-3和2。

  • 第2题:

    ●下列说法中错误的是 ()。()A.类是一组具有相同属性和相同操作的对象集合B.一般类是特殊类的父类(superclass),特殊类是一般类的子类(subclass)C.父类应包含其子类的所有属性和操作D.对类的属性的不同赋值即可得到该类的对象实例


    正确答案:C
    父类应为一个抽象,它不可能包含子类的所有属性和操作。

  • 第3题:

    设有程序如下: public class jzh0319 { public static void main(String args[]) { subClass sc=new subClass(); } } class superClass { superClass() { System.out.println("父类");} } class subClass extends superClass { subClass() {System.out.println("子类"); } } 其输出结果的第二行为:子类。()

    此题为判断题(对,错)。


    答案:对

  • 第4题:

    关于下面程序,( )的结论是正确的。

    classJ_SubClassextendsJ_Test{}

    publicclassJ_Test{

    J_Test(inti){

    System.out.println(i);

    }

    publicstaticvoidmain(String[]args){

    J_SubClassa=newJ_SubClass();

    }

    }

    A、不能通过编译,因为类J_Test没有定义无参数的构造方法

    B、不能通过编译,因为类J_SubClass没有定义无参数的构造方法

    C、不能通过编译,因为没有实现J_SubClass(inti)的构造方法

    D、可以成功通过编译


    正确答案:A

  • 第5题:

    设有程序如下: public class jzh0319 { public static void main(String args[]) { subClass sc=new subClass(); } } class superClass { superClass() { System.out.println("父类");} } class subClass extends superClass { subClass() {System.out.println("子类"); } } 其输出结果的第一行是:父类。()

    此题为判断题(对,错)。


    答案:对