/* 以下のエラーが取れずに、エライ目にあっていたので、メモ In member function 'int BUS::driver()': error: invalid use of incomplete type 'class PERSON' if (bp->status == 3){ // 3:乗車中 ^~ note: forward declaration of 'class PERSON' */ #include <iostream> #include <list> // list 利用のため using namespace std; class PERSON; // PERSONの定義はBUSの下にある(いわゆる前置定義) list<PERSON> person_list; class BUS { public: int a; list<PERSON> passenger; BUS(); int func(); }; BUS::BUS() { a = 5; } int BUS:func() { return 0; } class PERSON { public: int direction; PERSON(); }; PERSON::PERSON() { } // これを以下のようにしたら、エラーが取れた // 簡単に言えば、classの定義の後にメソッドを書くこと #include <iostream> #include <list> // list 利用のため using namespace std; class PERSON; // PERSONの定義はBUSの下にある(いわゆる前置定義) list<PERSON> person_list; class BUS { public: int a; list<PERSON> passenger; BUS(); int func(); }; class PERSON { public: int direction; PERSON(); }; BUS::BUS() { a = 5; } int BUS:func() { return 0; } PERSON::PERSON() { }