簡體   English   中英

在 C++ 中組織標題的最佳方法是什么?

[英]What is the best way to organize headers in C++?

我正在尋找在 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種方法可以做到這一點:

  1. #include "../../game/util/foo.h 。這就是我目前正在做的事情,但是越深入到文件夾結構 I go 就會變得更加混亂。

  2. #include "foo.h" 我的編輯器(Xcode)只用這個就可以很好地編譯,但我不確定其他編譯器。

  3. #include "game/util/foo.h" ,並將基本目錄添加到包含路徑。

哪一個是最好的? (最便攜,最有條理,可以通過許多文件夾實現最佳擴展等)

當您處理大型代碼庫時,我發現以下方法最有用。

  1. 公共標頭

module_name/include/module_name/public_header.hpp

module_name/include/module_name/my_class.hpp

...

  1. 私有標頭和源
module_name/src/something_private.cpp module_name/src/something_private.hpp module_name/src/my_class.cpp

筆記:

  • 重復module_name以確保提供模塊名稱,同時包括來自該庫/模塊的公共 header。 這提高了可讀性,也避免了在多個模塊中使用相同名稱時花費額外的時間來查找 header 的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM