我是否在我的cpp文件或包含的头文件中放入#include指令是否重要?

lit*_*tuk 3 c++ include

我的c ++程序使用一个单独的头文件(让我们称之为myHeader.h),因此包含它(#include "myHeader.h").在我的程序中,我需要使用另一个头文件(让我们称之为another.h).将#include "another.h"指令放在cpp文件中还是放在myHeader.h?中会有所不同吗?

Ami*_*hum 14

如果它没有在.h文件中使用,那么编译成功/失败就没有区别.

但是,.cpp由于以下原因,建议在文件的实现中放置仅包含头文件的包含:

  • 由于封装的原因 - 没有人需要知道你所包含的内容仅仅是为了实现.
  • A.h在头文件中包含文件B.h也将生成包含B.hinclude的任何文件A.h.这可能会导致看似无关的文件之间出现严重的依赖性问题.
  • 由于上述原因,它还可以大大增加构建时间(包含的每个文件都会复制到编译单元中).


Mar*_*ers 7

如果只需要在cpp文件中包含标题,则应将其包含在cpp文件中.

如果将其包含在标题中,则会为包含标题的所有其他人添加不需要的依赖项.如果您包含的不需要的标头还包含其他不需要的标头,则可能会爆炸.


ETo*_*reo 5

你的问题的答案是"不".但是,您应该尽量避免在.h文件中生成不必要的include语句,因为这会导致更长的构建时间.封装原因也更好.