可能重複:
In C++ why have header files and cpp files?頭文件中的類實現==不好的樣式?
我想知道,如果它是最好寫全班C++頭文件?並使用include來包含該類,類似於java執行其oOP編程。這是一種糟糕的風格嗎?任何人都可以推薦我一個「好」的C++ OOP風格指南嗎?我還想知道模板編程是什麼意思,當他們談論某人在C++中有經驗時。在.H 認沽定義
可能重複:
In C++ why have header files and cpp files?頭文件中的類實現==不好的樣式?
我想知道,如果它是最好寫全班C++頭文件?並使用include來包含該類,類似於java執行其oOP編程。這是一種糟糕的風格嗎?任何人都可以推薦我一個「好」的C++ OOP風格指南嗎?我還想知道模板編程是什麼意思,當他們談論某人在C++中有經驗時。在.H 認沽定義
將函數定義包含在頭文件中有一些敲擊效果,通常可以避免。以這種方式定義的函數可能會內聯,這會增加可執行文件的大小,從而影響性能(以正面或負面方式)。此外,這樣做可能會增加您的構建時間,因爲將所有定義排在一起會增加必須包含其他文件的可能性等。
一般的做法是將類接口放在頭文件中(.h
)並在實施文件中執行(.cpp
)。
在某些情況下,需要使所有代碼都可用 - 就像模板一樣。 STL廣泛使用模板,並且功能的實現必須包含在頭文件中。
把公共類和函數的聲明,一切都在別人的.cpp
.H是你的界面,是的.cpp您的實現。
所有正確的。請注意,我一直傾向於按照http://www.parashift.com/c++-faq-lite/inline-functions.html#faq-9.7的建議,將模板定義放置在標題的類定義之下,所以你在某種程度上仍然有聲明/定義分離。 –
是的,這更有意義,謝謝! –
根據誰的普遍做法?也就是說,絕大多數的Boost只有標題 - 這是不是算數? – ildjarn