Game::~Game() { activeStates.clear(); std::map<StateId, GameState*>::iterator itr; for (itr = states.begin(); itr != states.end(); itr++){ GameState* state = itr->second; std::cout << "deleting " << state->ToString() << std::endl; delete state; } states.clear(); system("PAUSE"); }