これ以上のタイトルは考えられません...できれば編集してください!
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を使用しているので、最新のものはありません。