インプリメンテーションファイル(.cc/.cpp)に対応するクラスdefinition file firstが含まれ、他のヘッダーファイルを含める前に、かなり一貫したアドバイスが見られました。しかし、トピックがヘッダーファイル自体に移動し、それらが含んでいる順番が変わると、アドバイスは変化するようです。インクルードファイルの注文方法
が示唆:
- DIR2/foo2.h(好ましい位置 - 詳細は下記を参照のこと)。
- システムファイル。
- C++システムファイル。
- 他のライブラリの.hファイル。
- プロジェクトの.hファイル。
上記のエントリ1と5の違いは何か、そしてなぜ1つまたは他の場所が選択されるのかは不明です。
- システムは
- プロジェクトは地元
- がもう一度あり
が含まれて含まれていますそれはanother online guideが(そのドキュメントの「クラスレイアウト」セクションにあります)この順序を示唆している、と述べましたあいまいさ、今回は2と3の間です。違いは何ですか?それらはプロジェクト間およびプロジェクト内のものを表していますか?
しかし、これまでのところ、両方の提案されたコーディング標準では、「あなたの」ヘッダーファイルが最後に含まれているように見えます。そのようなアドバイスは、実装ファイルのインクルード順に推奨されているものから後ろ向きであり、直感的ではありません。 「あなたの」ヘッダーファイルが一貫して最初にリストされていることは理にかなっていませんか?
1と5の違いは、 "dir/foo.ccの主な目的はdir2/foo2.hのものを実装またはテストすることです。以下のようにインクルードしてください:" 1-5リスト。 –
[ヘッダーファイルの順序]の可能な複製(http://stackoverflow.com/questions/4800991/header-file-order) –