我的代码是这样的:
[...]
class klasse{
public:
int Var1;
int Var2;
};
klasse Klasse1;
klasse Klasse2;
klasse Klasse3;
Klasse1.Var1=1;
Klasse2.Var1=1;
Klasse3.Var1=1;
//now watch
if(Klasse1.Var1==1)
{
Klasse1.Var2=1;
}
if(Klasse2.Var1==1)
{
Klasse2.Var2=1;
}
if(Klasse2.Var1==1)
{
Klasse2.Var2=1;
}
你明白这个问题吗?我想有一个for循环的变量名这样的:
[...]
class klasse{
public:
int Var1;
int Var2;
};
klasse Klasse1;
klasse Klasse2;
klasse Klasse3;
Klasse1.Var1=1;
Klasse2.Var1=1;
Klasse3.Var1=1;
for(int i=0; i<3; i++)
{
if(Klasse[i].Var1==1)
{
Klasse[i].Var2=1;
}
}
我试着用一个向量来做,但它不能正确地工作,或者它应该如何工作,也许我只是不胜任
您使用vector
的想法很好。
int main(void) {
std::vector<klasse> klasses(3);
for (int i=0; i<3; i++)
klasses[i].var1 = 1;
for (int i=0; i<3; i++)
if (klasses[i].var1 == 1)
klasses[i].var2 = 1;
}
或者,您可以使用基于范围的for循环:
for (auto &k : klasses)
if (k.var1 == 1)
k.var2 = 1;