两者Convert string to variable name or variable type和 How to use a string as a variable name in C++?答案说编译后不能使用字符串作为变量。然而,他们提到Python等高级语言可以。据我了解,Python是用C编写的 https://softwareengineering.stackexchange.com/questions/20988/why-is-python-written-in-c-and-not-in-c 。
如果Python是用C编写的,并且它可以使用字符串作为变量,那么为什么人们不能在C++中这样做。
我想这个问题没有说清楚。从评论中的类比来看,
如果Python是由C语言编写的,我会假设有一些函数可以让Python变得动态。那么为什么不能在没有 Python 的所有其他部分的情况下编写该功能呢?
最佳答案
CPython 实现 - 用 C 编写的 Python 实现 - 使用 C 语言来实现某种变量查找,使 Python 的行为类似于 Python,而不是像 C 或 BASIC。
所以,你当然可以使用C或C++来实现字符串命名变量查找。只是不要指望编译器能够识别它,因为它不是 C/C++ 语言的一部分。不过,最终产品 - 编译后的可执行文件 - 将支持这个概念。
例如,在 C++ 中,使用 Boost:
std::map<std::string, boost::variant<std::string, int>> _;
_["name"] = "user";
_["index"] = 1938107;
std::cout << _["name"] << _["index"] << std::endl;
输出:
user1938107
如果没有现成的类可以帮助您,您还可以使其与编译器已知的常规变量进行互操作。
关于c++ - 在c++中将字符串变成变量真的不可能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25072486/