如何输入变量的名称并在c ++中的函数中使用该变量?

时间:2018-02-03 15:38:12

标签: c++

我希望能够输入已存在变量的名称,然后在函数中使用该变量。有没有办法做到这一点?

例如,我的代码看起来像这样:

int a = 1;
int b = 2;

char variableName;
std::cin >> variableName;

有没有办法可以输入" a"作为variableName,然后在函数中使用变量a。

3 个答案:

答案 0 :(得分:4)

作为一种编译语言,C ++不支持对变量名的运行时访问 - 基本上,在编译之后,变量名称消失了,生成的可执行文件不再知道它们了。
所以你无法访问它们的运行时间。

答案 1 :(得分:1)

不,这是不可能的。你可以做的是你可以使用指针。指针最适合用于动态对象创建和传递到函数中。

有关指针的更多信息可以研究here

答案 2 :(得分:1)

不,没有具体的方法可以做到这一点,因为C ++不支持对这些名称的运行时访问,但您可以使用std::unordered_map实现类似的行为,如下所示:

std::unordered_map<std::string, int> variables;
variables["a"] = 1;
variables["b"] = 2;

std::string variableName;
std::cin >> variableName;

// Check to see if 'variableName' exists in the map, and then
// access it by index for whatever you want.