是否可以通过执行以下操作将字符串转换为变量(反之亦然):
makeVariable("int", "count");
或
string fruit;
cin >> fruit; // user inputs "apple"
makeVariable(fruit, "a green round object");
然后可以通过执行以下操作来访问它:
cout << apple; //a green round object
提前致谢!
最佳答案
不,这是不可能的。这种功能在 Ruby 和 Python 等脚本语言中很常见,但 C++ 的工作方式与这些语言大不相同。在 C++ 中,我们尝试在 compile time 处尽可能多地完成程序的工作。 .有时我们可以在 runtime 上做事,即使这样,优秀的 C++ 程序员也会在编译时找到一种方法来完成这项工作。
如果您知道要创建一个变量,请立即创建它:
int count;
您可能提前不知道变量的值,因此您可以将其推迟到运行时:
std::cin >> count;
如果您知道您将需要一组变量,但不知道其中有多少,那么创建一个 map或 vector :
std::vector<int> counts;
请记住,变量的名称只不过是一个名称——一种供您稍后引用该变量的方式。在 C++ 中,不可能 也不在运行时推迟分配变量的名称是有用的。这样做只会让你的代码更复杂,让你的程序更慢。
关于c++ - 将字符串转换为变量名或变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143120/