私はC++を初めて使うので、この質問は基本的なものかもしれません:お互いを参照する2つのクラス
私はお互いを参照する必要がある2つのクラスがあります。それぞれはそれ自身のヘッダファイルにあり、#includeはもう一方のヘッダファイルです。私がコンパイルしようとすると、「ISO C++では、クラスの1つに「型なしのFoo」の宣言が禁止されています。逆のヘッダーが最初に解析されるように処理を切り替えると、他のクラスと同じエラーが発生します。
C++では、相互参照が必要な2つのクラスを持つことは可能ですか?
詳細については、「App」クラスと「Window」クラスがあります。アプリケーションはウィンドウを参照する必要があります。 WindowにはAppにコールバックするボタンがあるので、Appへの参照が必要です。 2つのクラスが互いに参照することができない場合、これを実装するより良い方法がありますか?
可能であれば、相互依存関係は避けるべきです。アプリケーション内のボタンが呼び出す機能を別のコントローラのishオブジェクトに因数分解するのは意味がありますか? –
私の小さなゲームでこの問題が頻繁に発生します。私はWorldオブジェクトを持っています。例えば、Worldオブジェクトを参照する必要があるGameオブジェクトが含まれています。衝突検出。それをリファクタリングする良い方法を見つけていない。 (そしてbtw、7年前の議論を起こして、私に何らかのバッジを与えなければならない) – Johan