1

这个问题可能有点不清楚,所以我将提供代码:

class HitPoints {
    int m_current;
    int m_maximum;
    int m_regeneration;
};

所以基本上current意味着你当前拥有的生命值,maximum是你可以拥有的最大生命值,以及regeneration你每 10 秒获得多少生命值。

现在的事情是;并不是我游戏中的每个生物都使用regeneration来再生他们的 hp,有些只是不能随着时间的推移再生 hp。

我应该为那些生物设置regeneration0还是应该继承一个新类:

class HitPoints {
    int m_current;
    int m_maximum;
};

class RegeneratingHitPoints : public HitPoints {
    int m_regeneration;
};

我觉得这个小例子没那么重要,但是利用我学到的知识,我应该继承一个新的类。

我的问题是,一个属性真的重要吗?为了使它更通用的问题,创建新类有多严格?即使我应该继承一个新类,我有时可以稍微“弯曲”并使用一个旧类吗?

4

2 回答 2

5

除非那个额外的 int 的存储会成为一个问题(如果你同时在内存中有很多生物),我不会创建一个全新的类来摆脱它。在我看来,如果你不恢复生命值,你的生命值恢复为零。

于 2013-05-16T17:26:53.617 回答
0

很明显我应该继承一个新类,因为不应该有没有在基类中使用的属性。

于 2013-06-04T20:47:50.100 回答