C ++中的抽象类帮助

时间:2018-05-03 21:22:40

标签: c++ class virtual abstract

对于作业,我试图模仿这个类结构(并学习如何使用虚拟/抽象类。我已经完成了所有部分,但遇到了问题。 enter image description here

我希望每艘船至少有一个船体。这些船体对象不是Hull,而是Hull的子(MonoHull,MultiHull)。问题是我无法弄清楚如何添加类型' Hull'因为VS告诉我你不能从抽象类中创建一个对象。我该怎么办这个问题?谢谢!

2 个答案:

答案 0 :(得分:1)

如果我做对了,MonoHullMultiHullHull类的专精。

在这种情况下,您可以从MonoHull类派生MultiHullHull,然后在Hull*课程中加入Boat成员,可以指向MonoHullMultiHull对象。

Propulsion类及其PaddleSail衍生产品相同。

答案 1 :(得分:1)

您可以向Hull*类添加Boat指针,该类指向任何Hull子类的对象实例。通过在基类中使用virtual函数,您可以在运行时调用函数的重写版本。