2011-08-15 26 views

回答

3

將函數定義包含在頭文件中有一些敲擊效果,通常可以避免。以這種方式定義的函數可能會內聯,這會增加可執行文件的大小,從而影響性能(以正面或負面方式)。此外,這樣做可能會增加您的構建時間,因爲將所有定義排在一起會增加必須包含其他文件的可能性等。

一般的做法是將類接口放在頭文件中(.h)並在實施文件中執行(.cpp)。

在某些情況下,需要使所有代碼都可用 - 就像模板一樣。 STL廣泛使用模板,並且功能的實現必須包含在頭文件中。

+0

所有正確的。請注意,我一直傾向於按照http://www.parashift.com/c++-faq-lite/inline-functions.html#faq-9.7的建議,將模板定義放置在標題的類定義之下,所以你在某種程度上仍然有聲明/定義分離。 –

+0

是的,這更有意義,謝謝! –

+0

根據誰的普遍做法?也就是說,絕大多數的Boost只有標題 - 這是不是算數? – ildjarn

2

把公共類和函數的聲明,一切都在別人的.cpp

.H是你的界面,是的.cpp您的實現。