2016-11-17 44 views
4

我不熟悉C++,Java和Python背景,這些語言中的源代碼文件佈局非常標準。不過,我已經與C++項目發現,似乎有至少3種不同類型的佈局:在同一個目錄C++中的源代碼佈局

---main folder 
    | 
    --- file1.hpp 
    --- file2.hpp 
    --- code1.cpp 
    --- code2.cpp 

選項1個所有文件(.HPP和.cpp)選項2集管(.H .HPP)都在一個單一包括在src目錄目錄和實現(的.cpp)

---main folder 
    | 
    --- include 
    | --- file1.hpp 
    | --- file2.hpp 
    | 
    --- code 
     --- code1.cpp 
     --- code2.cpp 

選項3頭ERS(.H .HPP)都在一個單一包括具有用於報頭的不同的組(詳細信息,IMPL)特定目錄的目錄,在一個單一的目錄中的所有實施方式(的.cpp)

---main folder 
    | 
    --- include 
    | --- file1.hpp 
    | --- file2.hpp 
    | --- directory1 
    | | --- code1.hpp 
    | --- directory2 
    |  --- code2.hpp 
    | 
    --- code 
     --- code1.cpp 
     --- code2.cpp 

選項4類似於3但是實現也有它們的down目錄。

---main folder 
    | 
    --- include 
    | --- file1.hpp 
    | --- file2.hpp 
    | --- directory1 
    |  --- code1.hpp 
    | --- directory2 
    |  --- code2.hpp 
    | 
    --- code 
    | --- code1.cpp 
    | --- code2.cpp 
    | --- directory1 
    | | --- code1.cpp 
    | --- directory2 
    |   --- code2.cpp 

我有標準的快速閱讀,似乎無法找到對此事有任何建議或指導,也是一樣從cppref文檔。

是否有一些常見的佈局?或者是這樣的情況:「什麼適合你」

+5

這完全是一個偏好問題。 – dandan78

+1

@ dandan78不是純粹的實踐。 –

+0

@πάνταῥεῖ做出選擇時你會考慮哪些事項? –

回答

2

有沒有一些常見的佈局?

是的。將源文件和頭文件分離到自己的目錄是很常見的。這使得在沒有源代碼的情況下提供庫變得更加容易。

5

這實際上只取決於項目的規模有多大,以及是否希望它用作庫。如果它是一個圖書館,你一定會分開標題。對於一個普通的可執行項目,我通常首先將所有內容都包含在一個目錄中,然後運行g ++編譯這個項目,隨着項目的增長,您添加一個makefile以及您不需要添加目錄來保持整潔。在大多數非常大的項目中,我期望#4。但是,對於真正的小項目,#1,那就是如果他們甚至費力地將標題從實施中分離出來。

+0

所以我聽到你說的是有一種規則,這是一個代碼大小的函數。項目越小,佈局越簡單,項目越大,佈局越具體。 –

+1

基本上。通過一個小型項目,實際上不需要特定的佈局。但是一個很大的人能夠導航到一個文件,希望有良好的邏輯, – pteronewone

+1

所以我不能編輯評論,那個提交得太早。基本上,是的。一個大型項目能夠輕鬆導航到正確的文件是一個很大的優點。 – pteronewone