对于作业,我试图模仿这个类结构(并学习如何使用虚拟/抽象类。我已经完成了所有部分,但遇到了问题。
我希望每艘船至少有一个船体。这些船体对象不是Hull,而是Hull的子(MonoHull,MultiHull)。问题是我无法弄清楚如何添加类型' Hull'因为VS告诉我你不能从抽象类中创建一个对象。我该怎么办这个问题?谢谢!
答案 0 :(得分:1)
如果我做对了,MonoHull
和MultiHull
是Hull
类的专精。
在这种情况下,您可以从MonoHull
类派生MultiHull
和Hull
,然后在Hull*
课程中加入Boat
成员,可以指向MonoHull
或MultiHull
对象。
与Propulsion
类及其Paddle
和Sail
衍生产品相同。
答案 1 :(得分:1)
您可以向Hull*
类添加Boat
指针,该类指向任何Hull
子类的对象实例。通过在基类中使用virtual
函数,您可以在运行时调用函数的重写版本。