<分区>
已经讨论过一个类似的问题 ( C/C++ include header file order ),但是这个线程没有提到前向声明。如果我总结一下到目前为止我在网上阅读的内容:
每个人都同意 .cpp 文件的相应 header 应该放在第一位。这可确保头文件包含所需的一切。
除此之外,似乎没有达成共识。 Google 指南 ( https://google.github.io/styleguide/cppguide.html) 建议包括来自系统 -> 其他库 -> 项目的 header 。 SO 上的许多人提出了完全相反的建议。这似乎是个人喜好的问题。
关于前向声明,是否有任何理由将它们添加到包含 header 之前/之后?我不明白为什么这很重要 ( Is a class declaration allowed after a class definition? ),但也许我遗漏了什么。