這是一個非常類似的問題,我已經看過一個問題,在這裏回答 - Restarting a game and reinstantiate objects。重新啓動遊戲並重新創建一個全局對象
我想完全一樣的東西,除了我的問題略有不同,因爲我希望重新實例的對象是'全局',並且只有在程序第一次運行時纔會創建。
目前我創建新的「球員」之後我的#includes之前我的函數原型...
#include "Player.h"
#include "Monster.h"
using namespace std;
string MonsterTypes[3] = {"Orc","Goblin","Dark Rider"};
//create a stack of 'monsters'
stack<Monster>MonsterList;
Player* NewPlayer = new Player();
int NewGame();
void SetupPlayer();
void SetupMonsters();
void MainGame();
void Combat();
int GetMonstersLeft();
我是否需要只是創建一個完整的工廠類創建一個單一的播放器?顯然,當我調用函數'setupPlayer'時,我可以在那裏創建播放器對象,但是如果有辦法避免這樣做,我是不是必須將'NewPlayer'傳遞給其他所有函數?
「重新啓動」任何程序的一種方法是簡單地創建一個運行自己的新進程,同時退出原始進程。它看起來像程序從一開始就完全開始。 –
只需調用'delete NewPlayer; NewPlayer = new Player();' – manuell