えと、ひとつだけ質問なのですが 例えばA.cpp A.h B.cpp B.hという 二つの
クラスとヘッダーがあって、B.hの中で宣言したStructとEnum typeを利用した
オブジェクトを A.h中で宣言しようとすると コンパイルできません。
A.cpp中では B.hをIncludeしているので 問題なく使えます。

Enum type{x,y,z}
Struct s{int i; type t;}

のようにB.hで宣言し、 A.h内で

Private;
   void functionA(vector<s> input};

のように書くと、sは宣言されていませんというエラーがでてしまいます。どうしてでしょうか?