gpt4 book ai didi

C++ 需要在许多目录中包含头文件

转载 作者:行者123 更新时间:2023-11-27 22:50:23 25 4
gpt4 key购买 nike

我在 2D terraria/Minecraft 风格的游戏中有以下文件夹结构:

src/
- Backend/
- - Vector.hpp
- World/
- - Elements/
- - - Mobs/
- - - - BaseMob.cpp

如您所料,每个目录中还有更多的源文件。在 BaseMob.cpp 中,我需要访问 src/Backend/Vector.hpp是否有更简洁的方式来编写 #include "../../../Backend/Vector.hpp"(即 #include "/Backend/Vector.hpp") hpp") 或组织源文件夹中文件的更好方法?

这里有一些关于源文件夹中实际内容的更多信息(大多数 .cpp 文件被排除在外):

Backend/ # Anything specific to a particular platform
- Vector.hpp
- Graphics.hpp
World/ # Anything about the whole game's world
- Elements/
- - Mobs/
- - - BaseMob.hpp # Polymorphic base class
- - - MobHandler.hpp # Manages all mobs in world
- - - PlayerMob.hpp
- - - WaterMob.hpp
- - Block.hpp # Defines all possible blocks
- - Inventory.hpp
- - Furnace.hpp
- World.hpp
- WorldRenderer.hpp # Makes calls to Backend/graphics.hpp
main.cpp

最佳答案

您可以考虑重新组织您的包含文件夹。这是一个可能的解决方案,但可能还不够:当您开始使用第 3 方库时,您将无法做到这一点……因此您需要一种更好的方法来解决这个问题。

干净的方法是将所需的文件夹(存储所需头文件的文件夹)添加到编译器使用的“包含路径”,以便它可以找到它们。

然后,您将 World/Elements/Mobs 添加到包含路径,而不是 #include "World/Elements/Mobs/BaseMob.hpp",然后简单地执行#include "BaseMob.hpp"

如果您使用不同的编译器/IDE,它必须提供一个选项来执行此操作。

关于C++ 需要在许多目录中包含头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734256/

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