1

我正在为游戏引擎制作基于组件的实体系统。

我有一个实体类,它必须包含组件基类标头才能定义组件数组private Component* components[ 123 ]

但是,在组件基类中我必须定义一个private Entity* ownerEntity,因为组件知道它属于谁是至关重要的!

这导致 Entity.h 需要 Component.h ,反之亦然 -> 循环引用

我该如何解决这个问题?

4

1 回答 1

11

只要您只需要您的类包含指向其他类的指针引用,您就可以跳过真正的包含文件并使用空的前向声明,如class Component;.

您将需要在源文件中完整包含您取消引用指针或使用引用来调用Component.

于 2010-11-05T22:04:47.787 回答