【发布时间】:2011-06-19 13:43:49
【问题描述】:
我已经看到相当一致的建议,即实现文件 (.cc / .cpp) 应在包含其他头文件之前包含其相应的类 definition file first。但是当话题转移到头文件本身,以及它们包含的包含顺序时,建议似乎会有所不同。
- dir2/foo2.h(首选位置 - 请参阅下面的详细信息)。
- C 系统文件。
- C++ 系统文件。
- 其他库的 .h 文件。
- 您项目的 .h 文件。
目前尚不清楚上述条目 1 和条目 5 之间的区别是什么,以及为什么会选择其中一个或另一个位置。也就是说,another online guide 建议此顺序(可在该文档的“类布局”部分找到):
- 系统包括
- 项目包括
- 本地包括
再次出现歧义,这次是在第 2 项和第 3 项之间。有什么区别?这些代表项目间和项目内包含吗?
但更重要的是,两个提议的编码标准似乎都建议最后包含“你的”头文件。这样的建议,与建议在实现文件中包含排序相反,并不直观。将“您的”头文件始终列在首位——在系统头文件和第 3 方头文件之前是否没有意义?
【问题讨论】:
-
1 和 5 之间的区别由“在 dir/foo.cc 中,其主要目的是实现或测试 dir2/foo2.h 中的内容,命令您的包含如下:”备注在 1-5 列表的正上方。
-
Header file order 的可能副本
标签: c++ include coding-style header-files