11 November 2023

C++ 核心指南目录

“Include header files before other declarations in a file”

理由

减少互相依赖,增加可读性。

例子

#include <vector>
#include <algorithm>
#include <string>

// ... my code here ...

坏例子

#include <vector>

// ... my code here ...

#include <algorithm>
#include <string>

注意

对 .h 和 .cpp 文件都适用。

注意

也有一些讨论认为应该在我们要保护的代码之后再 #include 头文件。就像坏例子中做的那样。然而,这种方式

  • 只在一层一个文件的时候有效:这么处理的头文件包含到其他头文件中就出问题了。
  • 名字空间(一个实现的名字空间)能保护很多这种上下文依赖的情况。
  • 完全的保护和灵活性需要模块设计。