タグ付けされた質問 「include」

7
ヘッダーの地獄を防ぐにはどうすればよいですか?
新しいプロジェクトをゼロから始めています。約8人の開発者、1ダースほどのサブシステム、それぞれ4つまたは5つのソースファイル。 「ヘッダー地獄」、別名「スパゲッティヘッダー」を防ぐために何ができますか? ソースファイルごとに1つのヘッダーですか? サブシステムごとにプラス? 関数プロトタイプからtypdef、stucts、enumを分離しますか? サブシステムの内部をサブシステムの外部のものから分離しますか? ヘッダーまたはソースがスタンドアロンコンパイル可能である必要があるかどうかにかかわらず、すべての単一ファイルを主張しますか? 私は「最善の」方法を求めているのではなく、何に気を付け、悲しみを引き起こす可能性があるのか​​を示し、それを回避しようとすることができます。 これはC ++プロジェクトになりますが、C情報は将来の読者に役立つでしょう。
45 c++  headers  include 

8
一時的に含まれるヘッダーに依存することは良い習慣ですか?
私が取り組んでいるC ++プロジェクトのインクルードをクリーンアップしていますが、特定のファイルで直接使用されるすべてのヘッダーを明示的にインクルードする必要があるのか​​、最低限だけインクルードする必要があるのか​​疑問に思っています。 以下に例を示しEntity.hppます。 #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } (の前方宣言RenderObjectはオプションではないと仮定しましょう。) 今、私はそれがRenderObject.hpp含まれていることを知っていますTexture.hpp-私はそれぞれRenderObjectがTextureメンバーを持っているのでそれを知っています。それでも、私は明示的に含めるTexture.hppにはEntity.hpp、それはそれはに含まれているに依存することをお勧めします場合、私はわからないので、RenderObject.hpp。 だから:それは良い習慣ですか?
37 c++  c  headers  include 

7
.cppファイルのみを含めるとすべてが機能するのに、なぜ.hを含める必要があるのですか?
ファイルを含めるだけで機能させることができるのに、なぜファイル.hと.cppファイルの両方を含める必要があるの.cppですか? 例:file.h包含宣言を作成し、次にfile.cpp包含定義を作成し、両方を包含しmain.cppます。 または、file.cppを含む包含宣言/定義(プロトタイプなし)を作成しmain.cppます。 両方とも私のために働く。違いがわかりません。コンパイルとリンクのプロセスに関する何らかの洞察が役立つかもしれません。
18 c++  c  headers  linking  include 

7
ヘッダーがCPPファイルに明示的に含まれるようにする
#includeHPPファイルを介して既に何がインクルードされているかに関係なく、CPPファイルで使用されるすべてのタイプのヘッダーには、一般的には良い習慣だと思います。#include <string>たとえば、CPPでスキップした場合でもコンパイルできたとしても、HPPとCPPの両方で使用する可能性があります。これにより、HPPがフォワード宣言を使用したかどうかを心配する必要がなくなります。 この#includeコーディングスタイルを適用できるツールはありますか?このコーディングスタイルを適用する必要がありますか? プリプロセッサー/コンパイラーは#includeHPPからのものかCPPからのものかを気にしないので、このスタイルに従うのを忘れてもフィードバックは得られません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.