循环中创建的变量名称?

时间:2012-11-15 05:35:11

标签: c++ stl

我想知道是否可以创建使用stringstream在循环中链接到我的类的变量名?

例如我有这个:

for(int i=1; i<6; i++){
   std::stringstream button;
   button << "Button" << i;
   CreateButton button();

   button.function_name();
}

当我尝试它时,我无法访问该类的功能。

该功能不可用...所以我想知道我是否只是覆盖了字符串流。如果我有办法做我想做的事情?

2 个答案:

答案 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();
};