これ以上のタイトルは考えられません...できれば編集してください!
class AbstractGUIBase
{
...
};
class GUIConcrete : public AbstractGUIBase
{
...
};
class AbstractApplicationBase
{
AbstractGUIBase *mGUI;
};
class MyApplication : public AbstractApplicationBase
{
GUIConcrete *mGUI;
};
これは基本的に私が持っているセットアップです...アプリケーション基本クラスは、GUI基本クラスインスタンスへの参照を含む一般的な機能を提供しますmGUI
。または他の具体的なサブクラスmGUI
でのみインスタンス化されます。MyApplication
mGUI
のようなことをしてしまうので、両方のクラスで再宣言したくありませんsuper::mGUI = mGUI = new ConcreteGUI()
。mGUI
ただし、で使用するたびにキャストする必要はありませんMyApplication
。
ここに通常のパターンはありますか?GUIクラスタイプでテンプレート化できると思っていAbstractApplicationBase
ましたが、テンプレートプログラミングは特に好きではありません。
私はMSVC++2008を使用しているので、最新のものはありません。