我正在尝试让我的包含工作,但我尝试的所有内容都会导致错误。即使使用#pragma一次也行不通。你知道我做错了吗?
的main.cpp
#include "utility/headers/Window.h"
#include "engine/headers/Player.h"
#include "engine/headers/Chunk.h"
ChunkManager.h
#ifndef CHUNK_MANAGER_H
#define CHUNK_MANAGER_H
#include "../../utility/headers/Vector3i.h"
#include "Chunk.h"
#include <map>
class ChunkManager{...}
#endif // CHUNK_MANAGER_H
Chunk.h
#pragma once
#ifndef CHUNK_H
#define CHUNK_H
#include <glm/glm.hpp>
#include "CubeCreator.h"
#include "ChunkManager.h"
#include "../../utility/headers/Random.h"
#include "../../utility/noise/headers/Noise.h"
class Chunk{...}
#endif // CHUNK_H
错误消息'ChunkManager'尚未声明。
提前致谢!
答案 0 :(得分:2)
将<paper-drawer-panel>
替换为#include "ChunkManager.h"
。
这称为前向声明,解决了A类需要了解B类和B类需要了解A类的问题。
取决于您在班级class ChunkManager;
中使用ChunkManager
的方式。前瞻性声明可能不起作用。
答案 1 :(得分:0)
由于上述技术没有在我的情况下工作,我定义了一个包含全局变量(如chunkSize)的新头文件。也许我不可能做我曾尝试过的事情。
然而,对于那些可能在这里找到这个问题的人来说,我的导入现在看起来如何:
<强> ChunkManager.h 强>
#include "Chunk.h"
<强> Chunk.h 强>
// no includes
<强>的main.cpp 强>
#include "ChunkManager.h"
通过调用ChunkManager :: chunkSize而不是通过调用Settings :: chunkSize
来完成对chunkSize的访问