确定父项和子项的类类型

时间:2019-05-27 19:29:53

标签: c++ inheritance types casting

此刻,我正在用C ++编写游戏引擎。我有一堆类都是从基类GameObject派生的。

现在的问题是,我想为某些班级及其子女进行过滤。

例如。 GameObject-> Enemy-> standardGuy和GameObject-> Enemy-> toughGuy

在我的播放器类中,大多数时候我只能寻找Enemy对象并使用Enemy *指针来处理它们。 例如。如果我触摸它们。我死。不管是子类。

但是有时候,例如,如果hardGuy完全不受某些武器的干扰,我想在它们之间进行区分。

当然,树可以变得很深。特定的敌人类型可以在某种AI例程或某些程序中寻找特定的其他敌人类型。

到目前为止,我已经通过为类提供ID属性和GetID()方法来标识它们。但这实际上仅适用于层次结构的第一层。

我曾考虑过为每个进一步降低等级的人分配自己的附加ID。如subID,subSubID,subSubSubId等。但这似乎有点愚蠢。

有什么标准可以处理吗?

0 个答案:

没有答案