我有一个我没想到的问题,所以我不能以另一种方式做我想要的事情,因为它会影响项目结构,我花了很多时间来解决它。
我有一个班级世界和一个班级大块。世界上有一个实例。
在这个课程中,我有std::vector
个Chunks,所以它必须包含Chunk.h。
在类Chunk中我有函数Generate()
必须得到World & world
,因为它必须从其他块获取变量,获取纹理并使用World类中的方法,因此Chunks必须包含World.h。< / p>
世界正在将this
传递给像Generate()
这样的功能。
这两个班级都有#pragma once
。
它根本不起作用,我不知道为什么。 “世界”是语法错误。
感谢您的帮助!
答案 0 :(得分:2)
正如提到的tobi303,应该避免这些循环依赖。
无论如何你想要这样做,前方声明会让你:
world.h
#pragma once
#include <vector>
#include "chunk.h"
class World
{
// methods
private:
std::vector<Chunk> _chunks;
};
chunk.h
#pragma once
class World;
class Chunk
{
public:
void Generate(World& world);
};