2009-11-29 61 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的预处理器指令 。这会阻止您的头文件被多次包含。 这是我创建新头文件时使用的标准练习。