我的 C++ 程序中有以下类:
- 游戏实体
- 继承自 game_entity 的 game_creature
我计划有更多的类继承自game_entity、game_creature,甚至是其他一些较低的类。
我还有一个 game_entity 类型的数组,其中包含 game_entity 实例和 game_creature 实例。现在我的问题是这样的:当数组传递给函数时,我尝试循环遍历数组,但是当它到达 game_creature 对象时,它没有使用下标形式将指针增加足够多。
例如:
如果第一个对象是一个 game_creature(它的字段比 game_entity 多),它将访问前 3 个字段(在 game_creature 上与在 game_entity 上相同),但是当我这样做时array[1]
,它将访问第一个 game_creature 中的后两个整数作为第二个 game_creature 对象中的前两个整数。
这意味着如果我有一个 x = 1、y = 2、sprite* = Something、movespeed = 5 和 health = 25 的 game_creature,那么它将以 5 和 25 访问第二个 game_creature 对象的 x 和 y,这实际上是第一个 game_creature 的 movespeed 和 health。
我认为这是因为指针指向“game_entity”的 x 和 y 的内存实际上是“game_creature”的移动速度和健康所在的位置。但是,我不知道如何创建一个 game_entities 数组,因此它可以保存我游戏网格上的任何类型的对象,但仍然可以访问正确的字段并每次将指针递增足够多。
任何帮助表示赞赏。