2013-12-23 36 views
2

我目前正在開發一個API,現在我發現在我的目錄樹中顯式拆分以便分隔公共頭文件和私有頭文件和源文件很有用。這樣,爲我的SDK構建公共和開發(私有)包將變得更加容易。我現在心裏有兩種不同的選擇:如何在C++(頭文件)中構建私有和公共API

1) 
.../LibName/Class.h 
.../LibName/private/ClassImpl.h 
.../LibName/private/LibName/ClassImpl.cpp 

2) 
.../public/LibName/Class.h 
.../private/LibName/ClassImpl.h 
.../private/LibName/ClassImpl.cpp 

這將是不錯的有「LIBNAME /文件名」的方式至少在公開的文件組織的文件,因爲這是方式包括指令是在我的代碼:

#include "LibName/FileName.h" 

您認爲組織API頭文件的最佳選擇是什麼?其中的一個還是其他的?

謝謝

+1

將實現放入DLL或庫文件中,並讓頭文件提供聲明。 – 2013-12-24 08:08:57

+0

我明白了,你不想發送私人文件?那麼爲什麼不創建庫,只是寫公共apis到一個頭文件? –

回答

3

我終於chosed以下結構:

.../include/LibName1/Class.h 
.../include/LibName2/OtherClas.h 

.../src/LibName1/ClassImpl.h 
.../src/LibName1/ClassImpl.cpp 
.../src/LibName2/OtherClassImpl.h 
.../src/LibName2/OtherClassImpl.h 

這樣我既可以獨立的公頭文件(包括目錄)和私人源(src目錄),並且還引用了頭文件在include指令沒有明確地寫,如果他們是公共或私有:

#include "LibName1/Class.h" 

這種結構(或類似的一個)在其他LIB也使用像Qt框架一樣。