3

私は2つの単純なクラスを持っています。非常に単純なものはマスターテーブルのようなもので、クラス2へのポインタのリストが含まれており、クラス2にはクラス1へのポインタが1つ含まれています。すべてのクラスには、ポインターを介してメソッドを呼び出す関数がありますが、 エラー C2027: use of undefined type のようなエラーが発生します。

---- class One.h"
#include "Two.h"

class One {
public:
list<Two*> something;
void t(){pointer on Two call methods}
};

---------class Two.h 
 class One;
class Two {
public:
One* something;
void t(){pointer on One call methods}
};

この問題を解決するには?

4

1 に答える 1

9

メソッド定義を に移動し.cpp、必要なヘッダーを型定義に含めます。

Two.h
class One;
class Two {
public:
    One* something;
    void t();
};

Two.cpp:
void Two::t() {...}

これが必要なのは、コンパイラが未定義の型のメソッドを呼び出すためのコードを生成できないためです。

于 2012-07-27T13:56:45.030 に答える