gpt4 book ai didi

c++ - 在 C++ 中组织 header 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 10:16:37 26 4
gpt4 key购买 nike

我正在寻找在 C++ 中包含头文件的最便携和最有组织的方式。我正在制作一个游戏,现在,我的项目结构如下所示:

game
| util
| | foo.cpp
| | foo.h
| ...
game-client
| main.cpp
| graphics
| | gfx.cpp
| | gfx.h
| ...
game-server
| main.cpp
| ...

假设我想包含来自 gfx.cpp 的 foo.h。据我所知,有3种方法可以做到这一点:
  • #include "../../game/util/foo.h .这就是我目前正在做的事情,但是我进入的文件夹结构越深入,它就越困惑。
  • #include "foo.h" .我的编辑器(Xcode)只用这个就可以很好地编译,但我不确定其他编译器。
  • #include "game/util/foo.h" ,并将基本目录添加到包含路径。

  • 哪一个是最好的? (最便携,最有条理,可以通过许多文件夹实现最佳扩展等)

    最佳答案

    当您处理大型代码库时,我发现以下方法最有用。

  • 公共(public) header

  • module_name/include/module_name/public_header.hpp

    module_name/include/module_name/my_class.hpp

    ...


  • 私有(private) header 和来源

  • module_name/src/something_private.cpp  
    module_name/src/something_private.hpp
    module_name/src/my_class.cpp


    笔记:
  • 模块名称 重复以确保提供模块名称,同时包含来自该库/模块的公共(public) header 。
    这提高了可读性,也避免了花费额外的时间
    在多个使用相同名称时查找标题的位置
    模块。
  • 关于c++ - 在 C++ 中组织 header 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61701690/

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