包括.cpp而不是标题(.h)

sys*_*sop 21 c++ build header-files

在某些情况下,我们包含.cpp文件而不是标准头文件(.h),例如:

#include "example.cpp"
Run Code Online (Sandbox Code Playgroud)

代替

#include "example.h"
Run Code Online (Sandbox Code Playgroud)

它似乎有用,但是这样安全还是我应该避免它?

编译时间怎么样?

zel*_*lio 20

这是懒惰的编码.使用头文件.是的,它们可以增加编译时间,但它们意味着您可以轻松地重新实现代码块,或者更好的是,其他开发人员可以随时使用.头文件用作C/C++代码将要执行的操作的模板.丢弃或忽略它是一个坏主意.

  • 包括`.h`文件而不是`.cpp`文件可以**加快**编译时间,因为它允许你进行部分重新编译. (8认同)
  • @sysop - 公平地说,"这是懒惰的编码"有点夸张.在某些情况下,它可能实际上是正确的做法,但在一般情况下,我认为它的形式很差. (2认同)

小智 7

我同意Kerrek SB的观点.

我这样做了一次.我正在构建一个优秀的,广泛使用的压缩库,需要为8位图像和12位图像单独构建.我可以想出的最简单的方法是将它放到构建系统中(过度简化一点)有两个主.cpp文件,一个为8位构建设置#defines,另一个为12位构建.然后,主.cpp文件#included压缩库的源文件.

如果您足够了解规则以了解其原因以及为什么它可能不适用于您的情况,那么不遵循一般规则是可以的.(但这些案件应该很少见.)