2011-10-04 48 views
3

把所有的美學考慮放在一邊......哪種替代方案更可取?我主要關注的是構建時間,保持代碼可讀性和易於維護,當然還有編譯。C++/CLI:定義.cpp中的所有內容,或者分別在.h或.cpp中定義?

我見過大多數書籍都定義了一個.cpp文件,一個C#文件,但是......這會不會惡化構建時間?好吧,很可能非託管C++基本原理與託管C++/CLI不兼容,BUT請考慮一個轉換場景:將非託管C++的項目類移入C++/CLI項目,並且整個怪物構建好,坐在那裏等着一個勇敢的人(我,啊哈)把這些非託管的班級逐漸轉化爲託管班級,當然還有一個後備測試工具。

我離題了一下,但我希望你在回答時考慮我的異常情況(託管和非託管交互)。

回答

5

.h文件是預處理器的人工產物。編譯器開始編譯代碼時,它只是一大堆代碼。在C++/CLI中,.h文件的使用大大減少了,你不再需要它使聲明對其他模塊可用。在託管代碼中,程序集中的元數據提供它們。

C++/CLI保留了C++的構建模型,它一次編譯一個源代碼文件,並需要鏈接器將代碼粘合在一起。如果您的C++/CLI代碼爲,則一個項目分佈在多個源代碼文件中,您仍可能需要.h文件。

所以,只有在需要時才使用.h文件。建議對於本地項目來說沒有什麼不同。

+0

因此,如果我將.h和.cpp分開,構建時間不會增加或減少(顯着) –

+0

文件越少,構建速度越快。效果很小,不要指望有奇蹟。 –

相關問題