一个c++的题目

2025-02-21 17:33:53
推荐回答(3个)
回答1:

11行:定义一个以SuperClass类为基类的继承类SubClass。

14行:使用初始化成员列表来对SubClass类中的数据成员j赋值(j初始化为0)。SubClass(int j)括号中的j没用到,: j(0)这个j是数据成员j。

(1)___ =j; 应该是this->j = j;

(2)___ getValue() + j; 应该是 SuperClass::getValue() + j;

23 SuperClass s = new SubClass(-3);

应该是

23 SuperClass* s = new SubClass(-3);

程序运行到第15行且尚未执行第15行的语句时成员变量j的值是任意值,因为其未被初始化或赋值。

预期运行结果:

-3 2

你这个程序就算照我那样改了也运行不了,有很多问题:

问题1:

08 virtual iht getValueO { return i; } 这一句可能是你手误吧......

问题2:

抽象基类中没有virtual destructor,这将导致这一句:

delete s;

造成内存泄露,因为只有基类的部分被delete了而SubClass类的部分没有......

问题3:

22 void main(void)
符合标准的编译器不会让这一句编译通过......

回答2:

11行: 定义子类Subclass,它的父类是Superclass

14行;Subclass()是父类的构造函数(第4行),这里有了参数,所以叫重载
不过有个 ":j(0)"我就搞不懂了

回答3:

11行:SuperClass 是父类
14行:函数的重载。。。。。