类:作为参数传递还是继承?

时间:2011-11-14 15:49:12

标签: c++ class inheritance hierarchy

好的,我可以说我的cPlayer类继承自cOrganism,继承自cEntity。现在我准备扩展我的cPlayer课了,我想为我的播放器添加动画。

会更好吗?

A。)创建一个cAnimation类并从中继承cPlayer

B。)创建一个cAnimation类并将其作为参数传递给cPlayer

C。)还有别的吗?

3 个答案:

答案 0 :(得分:4)

这取决于CAnimation的设计方式。通常,继承在父类和子类之间形成“Implements”或“Is a”关系。

例如,cPlayer应该继承cAnimation你想要的任何一个:

  • cPlayer实施界面 cAnimation
  • cPlayer <{1}}。

似乎对我没有任何意义。 “cAnimation”不是你给界面的名字,玩家不是动画。

但这只是基于你的命名。您的实际设计将取决于控制动画的内容,它与对象的交互方式(可能需要cAnimation界面?)等之间的关系。

答案 1 :(得分:2)

我会使用composition:将cAnimation类型的对象作为cPlayer的成员。这里的许多问题都与这个问题有关(继承与多态)。答案很好的是here

答案 2 :(得分:0)

我宁愿认为假设的cAnimation类会包含一系列骨骼位置,并且可能存在多个cPlayer的动画(步行,跑步,跳跃等) ),因此一组cAnimation s将成为cPlayer的成员。