如何使用用户在C++中输入的名称声明类的对象?

问题描述:

后,我们定义一个类,例如类游戏,在主函数中,我们可以宣布这样的:如何使用用户在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

Cannae be done,Captain。名称对于程序员来说是一种方便,编译器可以将其删除到偏移量或原始内存地址。在运行时,这些漂亮的名字全都消失了。

可以做的是什么

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

这样你就可以

games[objectName].playgame(); 

运行(或创建和运行)的映射Game实例。

games.at(objectName).playgame(); 

如果您希望程序在用户输入未知游戏时感到不适。

Documentation on std::map.