0

文字列ストリームを使用してループ内でクラスにリンクされる変数名を作成できるかどうか疑問に思っていましたか?

たとえば、私はこれを持っています:

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

   button.function_name();
}

試したところ、そのクラスの関数にアクセスできませんでした。

この関数は使用できません...文字列ストリームを上書きしているだけなのかどうか疑問に思います。私がいる場合、私がやろうとしていることをする方法はありますか?

4

2 に答える 2

4

ボタンの配列またはベクトルが必要です。

#include <vector> //must include this

std::vector<CreateButton> buttons(6);

for(int i= 0; i<6; i++)
{
   button[i].function_name();
}

button[0]ここでは、1つの変数、button[1]別の変数、さらに別の変数などと考えることができますbutton[2]。このように、6つの変数があります。

于 2012-11-15T05:44:18.393 に答える
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();
};
于 2012-11-15T05:40:25.603 に答える