私が取り組んでいる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
。
だから:それは良い習慣ですか?
#ifndef _RENDER_H #define _RENDER_H ... #endif
。
#pragma once
解決しましたか?