我想知道是否可以创建使用stringstream在循环中链接到我的类的变量名?
例如我有这个:
for(int i=1; i<6; i++){
std::stringstream button;
button << "Button" << i;
CreateButton button();
button.function_name();
}
当我尝试它时,我无法访问该类的功能。
该功能不可用...所以我想知道我是否只是覆盖了字符串流。如果我有办法做我想做的事情?
答案 0 :(得分:4)
您需要一个数组或按钮矢量。
#include <vector> //must include this
std::vector<CreateButton> buttons(6);
for(int i= 0; i<6; i++)
{
button[i].function_name();
}
在这里,您可以将button[0]
视为一个变量,将button[1]
视为另一个变量,将button[2]
视为另一个变量,依此类推。这样,您就有六个变量。
答案 1 :(得分:3)
稍微增强您的代码,这是您要做的事情吗?
#include <vector>
std::vector<CreateButton> buttons;
// create buttons
for(int i=1; i<6; i++){
std::stringstream ss;
ss<< "Button" << i;
buttons.emplace_back(CreateButton(ss.str()));
}
// use buttons
for(int i=1; i<6; i++){
buttons[i].function_name();
};