Koo*_*rus -1 c c++ header include
我是否需要在源文件中包含的标题中包含所有内容?例如,我有一个名为source.cpp的文件,它以:
#include <string>
#include <vector>
#include <cctype>
Run Code Online (Sandbox Code Playgroud)
然后我有一个名为source.hpp的标题,它只包含字符串.编译得很好,但这是不好的做法,还是会导致将来出现并发症?
源文件需要的一些头文件可能只是用于实现细节,所以不,它们也不需要#include在头文件中.
我遵循的规则是:#include只在头文件中,然后在源文件中,#include头文件包含的所有文件,以及实现细节的其他所需头文件中绝对需要的内容.
如果有人想知道,我将所有#include指令从头文件复制到源文件中的原因是,如果我稍后用头向声明替换头中的那些指令之一,我的源文件根本不需要改变.