恥を忍んで聞かせてください。

インクルードファイルでクラス定義の参照が出来たり
出来なかったりで悩んでいます。
具体的にはClassA.hでClassAの定義、ClassB.hでClassBの定義、
ModuleC.cpp先頭でClassA.h、ClassB.hの順番でインクルードしています。
ClassB.h内ではClassA型のメンバ変数を宣言していますが、これが
エラーになったりならなかったり・・・何が原因でしょうか?
ClassB.h内でClassA.hをインクルードすれば確実に通りますが、
出来ればインクルードはModuleC.cpp内に統一したいと考えています。