//ゲーム状態識別子
enum GameState_t
{
GAME_STATE_OPENING,
GAME_STATE_TITLE,
GAME_STATE_MAINGAME,
GAME_STATE_ENDING,
};
//ゲーム状態管理クラス
class GameStateMan
{
protected:
GameState_t m_gameState;
public:
//インスタンス
static GameStateMan *Instance()
{
static GameStateMan instance;
return &instance;
}
//状態セット
void SetState( GameState_t setState )
{
m_gameState = setState;
}
//状態取得
GameState_t GetState()const
{
return m_gameState;
}
private:
//コンストラクタ
GameStateMan( GameState_t initState = GAME_STATE_OPENING )
{
m_gameState = initState;
}
GameStateMan(const GameStateMan& r){}
GameStateMan& operator=(const GameStateMan& r){}
};
int main()
{
//メインループ
while(1)
{
switch( GameStateMan::Instance()->GetState() )
{
//Opening(),Title(),MainGame(),Ending()はそれぞれGameState_t型の値を返します
case GAME_STATE_OPENING: GameStateMan::Instance()->SetState( Opening() );
case GAME_STATE_TITLE: GameStateMan::Instance()->SetState( Title() );
case GAME_STATE_MAINGAME: GameStateMan::Instance()->SetState( MainGame() );
case GAME_STATE_ENDING: GameStateMan::Instance()->SetState( Ending() );
}
}
return 1;
}
”_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)”といったエラーが表示されます。
ググッて見たところメモリが確保されていない領域をdeleteした時に出るエラーらしい事が分かりましたが、
修正の仕方が分からず困っています。
お手数ですが、どなたか修正の仕方を教えていただければと思います。
また、Singletonパターンの他にも唯一つのインスタンスを作成する方法があればそちらもお願いいたします