C ++特定的继承示例

Don*_*Man 2 c++ inheritance hierarchy

我是C ++的新手,我很好奇继承是否适合该示例:该程序代表一个游戏,X玩家可以使用一些武器选择他们的太空飞船。类的结构如下所示:

武器->船只->玩家

武器代表基类,船只从中派生。玩家将来自轮船。为什么这样呢?因为我可以为PlayerOne 创建一个对象并访问其所有飞船数据。武器对象将通过矢量动态创建。

我知道这是一个很长的问题,但是您确实可以帮助我开始继承。提前致谢!

dus*_*yle 5

在面向对象的编程中,继承倾向于覆盖is-a关系。子类应该是超类的特化。

因此,在确定船只应从武器衍生还是玩家应从船衍生时,您需要问:“船只是武器吗?” 和“玩家是船吗?”。我认为这两个问题的答案可能都不是。

而是,玩家拥有武器,或者玩家拥有船只,或者船只具有武器。有一个关系最好用组成来描述;您的玩家类应该拥有武器的实例(或武器的数据结构)以及船舶的数据结构。

您可能要使用继承来专门化武器和行为的类型。因此,您可能有一个分别从武器派生的Laserbeam类和Lightsaber类,并且每个类都具有不同的range属性。