2013-07-12 45 views
0

在visual studio中,方法的定義將在頭文件中是正常的。在實現文件(cpp文件)而不是頭文件中編寫方法的定義的好處?

當我們需要在頭文件中只寫入聲明並將其定義寫入實現文件(在它的cpp文件中)時?這樣做有什麼好處嗎?

+0

想象一下當您的函數包含靜態局部變量並將頭文件包含到兩個單獨的編譯單元時會發生什麼。 –

+0

請參閱http://stackoverflow.com/q/1001639/96780,特別是引用Pedro Guerreiro的文章[我的回答](http://stackoverflow.com/a/1001749/96780)。 –

回答

0

其中一個的好處是,如果您更改函數的實現,則不必重新編譯使用該標頭的每個文件。事實上,這就是C和C++被設計用於的方式。隨着項目變得更大,您將會體會到從實現(在.cpp文件中)解耦接口(在標題中)的好處。 (但是,如果您正在編寫模板,則不適用)

+0

,但是當我將一些函數分離成聲明和實現時(在頭文件中聲明這些函數,並在cpp文件中實現),並且其他函數僅在頭文件中有什麼優勢嗎?我問,因爲我在Visual Studio中有一個程序,並且只有一個函數被分隔到頭文件中的聲明部分,以及cpp文件中的定義。但其他功能只在頭文件中。我不知道爲什麼,這種情況有什麼好處? –

相關問題