C++ 何时在.cpp文件中包含库?

C++ 何时在.cpp文件中包含库?,c++,header-files,C++,Header Files,标头用于将“声明”(.h文件)与“实现”(.cpp文件)分开,但也用于导入库,因此通常在.cpp文件中没有#include…” 但是,让我们假设somelibrary.h只对foo()在某些.cpp文件中的特定实现中执行的某些操作需要才行:我是否应该在.h文件中包含“somelibrary.h”(其中声明了foo())或者将其包含在.cpp文件中(其中实现了foo()) 我想说第二个,因为库只用于实现,但我更希望在这个主题上有比我更专业的人来回答。您应该在使用库的地方包含它。如果头文件中没有使用

标头用于将“声明”(
.h
文件)与“实现”(
.cpp
文件)分开,但也用于导入库,因此通常在
.cpp文件中没有
#include…”

但是,让我们假设
somelibrary.h
只对
foo()
在某些
.cpp
文件中的特定实现中执行的某些操作需要才行:我是否应该
.h
文件中包含“somelibrary.h”
(其中声明了
foo()
)或者将其包含在
.cpp
文件中(其中实现了
foo()


我想说第二个,因为库只用于实现,但我更希望在这个主题上有比我更专业的人来回答。

您应该在使用库的地方包含它。如果头文件中没有使用库,则不要包含它


将其包含在标题中会给您带来很多麻烦。例如,您必须将其与项目一起分发(如果您的输出是库).

如果不必要地包含头文件,也可能会增加编译时间。最好尽可能使用前向声明,而不是包含头文件。我认为您没有解决OP对头文件和库的混淆。头文件不用于“导入库”。唯一可行的方法是,如果一个库全部位于一个头文件中,并且没有编译的组件。