.h文件包含在header和cpp文件中

时间:2012-08-09 01:53:58

标签: c++ header-files

  

可能重复:
  What is the purpose of forward declaration?
  Forward Declaration vs Include

我对头文件和cpp文件中包含的#include *.h文件有点困惑。我看到一些.h文件包含在头文件中,一些文件包含在相应的cpp文件中。我猜想所有需要的.h文件都需要包含在头文件中,因此看不出它们被包含在cpp文件中的原因。这有什么特别的原因吗?

另外,我发现使用Class ClassName;在头文件中包含了一些必需的类。这与仅在头文件中包含ClassName.h有什么不同?

1 个答案:

答案 0 :(得分:1)

在你的第一段中你似乎说同一个.h文件包含在类'头文件和类'.cpp文件中?这只是一个疏忽,因为包含一个包含其他文件的文件,根据定义,还包括那些其他文件。您可以删除.cpp文件中的重复包含。

在你的第二段中,你所看到的是一个类的前向声明。如果你不需要在标题中使用类的定义,那么只需向前声明它就是好的做法。这样,包含标头的文件不依赖于类的定义。这减少了文件之间的依赖关系。仅需要前向声明的一个示例是,如果一个类包含一个成员变量,该变量是指向类的指针而不是类本身。