2016-05-03 129 views
3

標題用於將「聲明」(.h文件)與「執行」(.cpp文件)分開,但也要導入庫文件,所以.cpp file中通常沒有#include ..."何時在.cpp文件中包含庫?

但我們假設some-library.h需要僅用於某些操作。在一些.cpp文件中的特定實現foo()內部完成:我應該在.h文件(其中foo()聲明)#include "some-library.h"或將其包含在.cpp文件(其中foo()已實施)?

我會說第二個,因爲圖書館只需要實施,但我更喜歡在這個主題上有人比我更專家的回答。

+0

標題不用於「導入庫」。唯一可行的方法是如果庫全部在一個頭文件中,並且沒有編譯組件。 – juanchopanza

回答

4

你應該在你使用它的地方包含你的庫。如果頭文件中沒有使用該庫,則不要包含它。

將它包含在標題中會帶給你很多頭痛的問題。例如,您必須將其與您的項目分發(如果您的輸出是一個庫)。

+2

如果不必要地包含頭文件,它也可能增加編譯時間。 – Arcinde

+1

使用前向聲明是一種很好的做法,儘可能使用_而不是包含頭文件。 –

+0

我認爲你沒有解決OP關於頭文件和庫的混淆問題。 – juanchopanza

相關問題