gpt4 book ai didi

c++ - 类 'Entity' 中类 'Component' 的指针变量,即使包含 'Entity.h' 也会出错

转载 作者:行者123 更新时间:2023-11-28 05:25:23 24 4
gpt4 key购买 nike

好吧,我正在制作我自己的实体组件系统,我试图在组件类中有一个实体指针对象,但是对象(变量)给了我很多错误,即使它已经被包含在内.

'Component.h'
#include "Entity.h"
class Component {

public:
Entity* ThisEntity;

}

那是行不通的,在“Entity.h”中出现了 76 个错误,所有错误都无法识别我的自定义类型(如组件、字符串等)。我通常使用一个全局头文件,其中包含所有全局变量,并包含所有必要的内容,如下所示:

'Public.h'

#ifndef Entity_h
#include "Entity.h" // Entity is include guarded
#endif

当我尝试在“Component.cpp”中包含“Public.h”时,它仍然给我错误:

'Component.cpp'

#include "Public.h"
#include "Component.h" // The arrangement is correct, public before component but this still doesn't work

当我将鼠标悬停在指针变量“Entity* ThisEnt”上时,它会显示“实体类”,所以它可以识别它,但它仍然给我 76 个错误。

最佳答案

您不能相互引用头文件,因为它会产生循环依赖性。您可以通过向前声明您要使用的类之一来打破这种依赖关系。

关于c++ - 类 'Entity' 中类 'Component' 的指针变量,即使包含 'Entity.h' 也会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40656924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com