【发布时间】:2016-04-25 13:25:04
【问题描述】:
我正在尝试做这样的事情:
int i;
Object a + to_string(i);
为了创建名称为 a1,a2,a3 的对象...
有可能吗?
【问题讨论】:
-
名字?您需要使用预处理器:#define MYNAME(x) a##i
-
听起来你想要一个数组或(更好)一个
std::vector。
我正在尝试做这样的事情:
int i;
Object a + to_string(i);
为了创建名称为 a1,a2,a3 的对象...
有可能吗?
【问题讨论】:
std::vector。
看起来你想要的是一个数组,但如果你想要尊重任何输入整数的“安全”版本,你可以这样写:
std::map<int,Object> a;
int i = /*...*/;
a[i].methodName();
如果你想在运行时动态定义变量名,那是不可能的,因为变量名只存在于编译阶段。
【讨论】:
无法使用:
int;
Object a + to_string(i);
也许使用std::map 是您正在寻找的。p>
std::map<std::string, Object> theMap;
theMap[std::string("a") + to_string(i)] = Object();
【讨论】: