わかりやすいよう、図を用意させていただきました。
主なファイルは
・Base
・System
・Scene01
・Scene02
・App
とします
それぞれの関係は以下のようなものです
BaseはSystemをインクルードしており
Scene01と02はBaseを継承しています
AppはBase、Scene01、Scene02をインクルードしており、メインとなる処理を書きます。
そしてApp内で以下のような処理を書きます。
C++
1/*App.h*/ 2#inc... 3 vector<Base*> scenes; 4 5/*App.cpp*/ 6void... 7 Base * s_1 = new s1::Scene01(); 8 Base * s_2 = new s2::Scene02(); 9 scenes.push_back(s_1); 10 scenes.push_back(s_2);
Vector。scenesにそれぞれScene01、Scene02を入れ、__scenes[1]__のような呼び出しが可能な状態にしました
そして以下がBaseの内容です
C++
1 2/*Base.h*/ 3... 4#include "System.h" 5class Base { 6 7System S;
ここで質問があります
この状態でApp内でscene01,02をnewするたびに、Base内のSystem型Sとゆう値は増えますが
Base内の処理を1つに限定(App内で呼び出すSは1つに固定、共有)するにはどのような変更を加えたらいいのでしょうか?
変更したくない処理は
・App内でVectorを使ってまとめる
・Baseは別のヘッダとして分離させておく
の2つです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 09:42
2016/09/11 09:54