2016-11-10 64 views
-1

後,我們定義一個類,例如類遊戲,在主函數中,我們可以宣佈這樣的:如何使用用戶在C++中輸入的名稱聲明類的對象?

int main(){ 
    Game Mario; 
    Game GameXXX; 
} 

我不知道我是否可以使用用戶輸入名稱申報對象?我的意思是這樣的:

int main(){ 
    string objectName; 
    cout<<"Enter a name for an object:\n"; 
    cin >> objectName; 
} 

我們該如何使用該「objectName」作爲對象的名稱?

Game objectName; 
+0

而是使用基於運行時的替代方案。創建一個對象的映射,其中鍵爲用戶輸入的值。用戶輸入內容後,您無法命名變量。變量名稱只是該對象的編譯時引用。 –

+0

好的,現在轉到下一步:您的代碼將如何使用用戶指定的變量?聽起來像你想要名稱是對象中的數據。 – John3136

回答

1

Cannae be done,Captain。名稱對於程序員來說是一種方便,編譯器可以將其刪除到偏移量或原始內存地址。在運行時,這些漂亮的名字全都消失了。

可以做的是什麼

std::map<std::string, Game> games; 

這樣你就可以

games[objectName].playgame(); 

運行(或創建和運行)的映射Game實例。

games.at(objectName).playgame(); 

如果您希望程序在用戶輸入未知遊戲時感到不適。

Documentation on std::map.

相關問題