Hehe質問のタイトルの選択に苦労しています。しかし、問題をより明確にするために私の問題について説明しましょう。クラスの機能によって制御されるクラスインスタンスの登録
私は自分のゲーム用の独自のGUIライブラリをC++で作成しています。そこにはDirectXラッパーがあります。 しかし、「マネージャ」クラスの描画機能を呼び出すだけで、ゲーム内のウィンドウをレンダリングする方法はわかりません。
たとえば、「マネージャ」と「ウィンドウ」クラスが既にあるとします。
マネージャー:
ウィンドウ:
class MyGUIWindow { public: MyGUIWindow() { this->SetWindowTitle("New Window"); } void SetWindowTitle(char *szWindowTitle); void Draw(); };
とメインプログラム:
//... MyGUIManager *GUIMAN = new MyGUIManager(); MyGUIWindow *FirstWindow = GUIMAN->NewWindow("Hello World"); MyGUIWindow *SecondWindow = GUIMAN->NewWindow("Hello World!!!"); GUIMAN->RegisterWindow(FirstWindow); // ?? GUIMAN->RegisterWindow(SecondWindow); while(Drawing()) { GUIMAN->Draw(); // I wanted this function to be able to call ALL MyGUIWindow instances' Draw() function //... }
ので、主な質問はMyGUIWindow変数のすべてのことが可能にする方法であり、 WindowCollectorベクトルで制御できますか?
GUIMAN-> RegisterWindow(FirstWindow); // ?? GUIMAN-> RegisterWindow(SecondWindow); は、参照が必要なときにポインタを渡すように見えますが、この問題はあなたの実行中ですか? –
はい!実際には、WindowCollectorの各メンバーが、RegisterWindow関数でプッシュバックされたときにtargetWindowを参照するようにしました。 –