如何使用用户在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;
答
Cannae be done,Captain。名称对于程序员来说是一种方便,编译器可以将其删除到偏移量或原始内存地址。在运行时,这些漂亮的名字全都消失了。
你可以做的是什么
std::map<std::string, Game> games;
这样你就可以
games[objectName].playgame();
运行(或创建和运行)的映射Game
实例。
games.at(objectName).playgame();
如果您希望程序在用户输入未知游戏时感到不适。
而是使用基于运行时的替代方案。创建一个对象的映射,其中键为用户输入的值。用户输入内容后,您无法命名变量。变量名称只是该对象的编译时引用。 –
好的,现在转到下一步:您的代码将如何使用用户指定的变量?听起来像你想要名称是对象中的数据。 – John3136