2009-11-29 63 views
2

我正在使用C++的小遊戲,並使用Eclipse CDT的類生成器。它創建了一個包含類定義的.h文件和一個包含所述類的無身體方法的.cpp文件。C++頭文件約定

所以,如果我遵循模板,我會有一個.cpp文件充滿了方法聲明和一個.cpp文件與方法體。但是,我不能在其他文件中包含.cpp文件。

那麼C++中的類和包含文件的約定是什麼?我所做的是在.h文件的類聲明下填寫方法體,並刪除.cpp文件。

+1

可能的重複:http://stackoverflow.com/questions/1686204/help-ac-newbie-understand-his-mistakes-header-files-and-cpp-files – 2009-11-29 05:50:07

+0

是的,我會說關於封面的問題它。 – GManNickG 2009-11-29 05:51:52

+0

*相關:* [如何避免包含類實現文件?](http://stackoverflow.com/q/2037880/54262) – 2010-10-31 07:39:13

回答

5

您不必包含.cpp文件。包括.h文件只需要它。 .h表示標題,即它應該有的是函數/對象定義。實際的實現進入同名的.cpp文件。鏈接器將處理你的問題。

頭文件包含聲明(也稱爲原型)。包含標題讓程序知道「我聲明瞭一些看起來像是存在的東西」。

頭文件的用戶爲我們節省了在代碼文件中遍佈所有方法的努力 - 我們只做一次,然後導入文件。

的.C /的.cpp/.cc文件包括定義 - 它告訴程序函數的功能。

您不必「包含」.c文件,因爲這就是編譯器所做的 - 它會將所有.c文件編譯爲機器代碼。

0

我不太確定我的理解。頭文件定義了類的功能,並將其包含到需要使用該類的任何源文件中。

源文件實現了類如何執行其操作。

但是,您可以包括一個.cpp到另一個(你可以包括任何東西),但你並不需要。

2

你可以做的另一件事是創建一個頭文件是使用ifdef和endif的預處理器指令 。這會阻止您的頭文件被多次包含。 這是我創建新頭文件時使用的標準練習。