構成は最後に載せています。
色々と省いたので、必要なものがあった場合言って下さい。
Substance.hの
//戦略パート
void Strategy_situation();
//戦闘パート
void Battle_situation();
この二つを別のクラスを宣言して使用したいと考えたのですが、方法が思いつきません。
クラス名をStrategyとした時
コンストラクタを呼び出したときに
Strategy sg;
sg.situation();
と宣言して使用する方法は考え付いたのですが、
Strategy::situation();
と使用したいと考えています。
Strategy *sg= new Strategy();
で宣言しても、使用方法は
sg->situtaion();
となりますし、deleteもややこしいので使いたくありません。
Strategy::situation();
の形で使用する方法は無いでしょうか?
C++はほとんど理解できていないので、ご助力お願いします。
********* 構成 ****************************************************** //Main.cpp int WINAPI WinMain(HINSTANCE hI, HINSTANCE hp, LPSTR lpC, int nC){ SetMainWindowText("テトリス Ver2.0"); //タイトル変更 Substance *sub = new Substance(); sub->doMainLoop(); delete sub; } //substance.h class Substance :public Frame{ bool drawMain(); //画面パートの追加設定 S_GAME_STATE s_g_state; //現在の状態 //戦略パート void Strategy_situation(); //戦闘パート void Battle_situation(); public: S_GAME_STATE setS_GameState(S_GAME_STATE state); Substance(){ setS_GameState(BATTLE); } }; //substance.cpp bool Substance::drawMain(){ switch(s_g_state){ case STRATEGY: Strategy_situation(); break; case BATTLE: Battle_situation(); break; } return true; } //Frame.h void Frame::doMainLoop(){ (省略) switch(g_state){ case GAME_TITLE: drawTitle(); break; case GAME_MAIN: if( drawMain() == false){ setGameState(GAME_OVER); } break; case GAME_END: if( drawEnd() == false) frag=FALSE; break; case GAME_CLEAR: drawClear(); break; case GAME_OVER: drawOver(); break; case GAME_OPTION: drawOption(); break; } (省略) }