C ++:概念循环包括问题

时间:2010-11-05 22:02:38

标签: c++ include circular-dependency

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

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

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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:11)

只要你只需要你的类将指针引用包含到其他类中,你就可以跳过真正的包含文件并使用像{一样的空前向声明。 {1}}。

您将需要源文件中的完整包含,您可以在其中取消引用指针或使用class Component;上的方法调用方法。