物事が大きくなりすぎる前に構文の問題を見つけようとするために、不完全なプログラムをコンパイルしようとしています。そうは言っても、私が作成したクラスはほとんど完全であり(いくつかのメンバー関数はスタブ化されています)、メインプログラムとは別のファイルに含まれています。Visual Studioは、それらをクラスとして認識します(それらにマウスを合わせると表示されます)。
さて、問題は、これをコンパイルしようとすると、次のエラーが発生することです。
1>d:\my programs\powerplay\powerplay\powerplay.hpp(99): error C2065: 'pp_player' : undeclared identifier
1>d:\my programs\powerplay\powerplay\powerplay.hpp(99): error C2146: syntax error : missing ')' before identifier 'player'
1>d:\my programs\powerplay\powerplay\powerplay.hpp(99): error C2182: 'resolve_current_space' : illegal use of type 'void'
このファイルの99行目は関数宣言です(ここで、pp_playerは私のクラスの大きい方であり、前述のように、エディターではVSによってクラスとして認識されます)。
void resolve_current_space (pp_player& player);
すべてが適切に#include'dであり、他のクラスに問題はありません。この関数(宣言と定義)をコメントアウトしようとしましたが、コンパイラーは、このクラスのオブジェクトを引数として使用しようとする次の関数をチョークします。このクラスのオブジェクトをファイルの前半でインスタンス化しようとしましたが、まったく同じエラーは発生しませんでしたが、多かれ少なかれ同じ結果になりました。
誰もがこれが何であるかについての考えを持っていますか?上記が十分でない場合は、必要に応じて、ソース全体を利用できるようにすることができます。