【问题标题】:Abstract Class Help in C++ [closed]C ++中的抽象类帮助[关闭]
【发布时间】:2018-05-03 21:22:39
【问题描述】:

对于一项作业,我正在尝试模拟这种类结构(并学习如何使用虚拟/抽象类。我已准备好所有部分,但遇到了问题。

我希望每艘船至少有一个船体。这些 hull 对象不是 Hull,而是 Hull 的子对象(MonoHull、MultiHull)。问题是我不知道如何将类型“船体”添加到船类,因为 VS 告诉我你不能从抽象类中创建对象。我应该如何处理这个问题?谢谢!

【问题讨论】:

  • 在船类中添加Hull*
  • 就是这样!谢谢!
  • 您的Water 课程中有什么内容?它是否继承自HydrogenOxygenAtom 是纯虚拟类,electronprotonsneutrons 作为虚拟成员吗?

标签: c++ class virtual abstract


【解决方案1】:

如果我做对了,MonoHullMultiHullHull 类的特化。

在这种情况下你可以做的是从Hull类派生MonoHullMultiHull,然后在你的Boat类中包含一个Hull*成员,它可以指向一个MonoHullMultiHull 对象。

Propulsion 类及其PaddleSail 派生类相同。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我倾向于推荐使用std::unique_ptr<Hull> 成员。
    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 2012-10-15
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2011-09-15
    相关资源
    最近更新 更多