私は現在、私のプロジェクト(C ++)に相互に含めることに問題があります。
通常、相互包含の問題が発生した場合は、前方宣言を行うか、クラスを少し再設計することで簡単に解決できます。しかし、今回は行き詰まりました:
Gameというクラスがあり、コア ゲーム システムを作成して起動します。これらの 1 つはGraphicsSystemと呼ばれます。Game コンストラクターでは、GraphicsSystem オブジェクトが動的に作成され、GraphicsSystem* ポインターに格納されます。次のようになります。
Game::Game ()
{
gfxSys = new GraphicsSystem(80, new Camera());
}
ここで、GraphicsSystem クラスは、ある時点で Game クラスのメソッドにアクセスして、Game オブジェクト内に格納されているプレーヤー オブジェクトを取得する必要があります。それぞれの部分は次のようになります (ゲームはシングルトンです!):
void GraphicsSystem::handleFrame ()
{
ElementList elements = Game::instance()->getPlayer()->getEnvironment()->getElements();
}
今、私はすでに両方向で前方宣言を試みましたが、それはコンパイラを満足させません。もちろん、プレイヤー ポインターをグラフィック システムに配置することもできますが、彼はそこに属していないため、実際にはそうしたくありません。
デザインをあまり変更せずにこれを解決する方法はありますか? 私は今本当に困っているので、皆さんが私を助けてくれることを願っています.
Visual Studio 2010 (Visual C++) を使用しています。
前もって感謝します!クリス