C++11 如何使用动态名称Cocos2d-x C+访问类的成员+;

C++11 如何使用动态名称Cocos2d-x C+访问类的成员+;,c++11,cocos2d-x,C++11,Cocos2d X,我的头中有一些数字,我想在代码中这样访问它们 int _number0; int _number1; 然后在实施中 _number0 = 10; _number1 = 20; int i; for(i=0; i<2, i++){ auto number = _number+i; //This is where I'm lost, how to do the right part right in order to get this int by its name created

我的头中有一些数字,我想在代码中这样访问它们

int _number0;
int _number1;
然后在实施中

_number0 = 10;
_number1 = 20;

int i;
for(i=0; i<2, i++){
    auto number = _number+i; //This is where I'm lost, how to do the right part right in order to get this int by its name created from a String + an Integer.
    CCLOG("Number: %i", number); //Output Number: 10 // Number: 20
}
\u编号0=10;
_数字1=20;
int i;

对于(i=0;i我认为std::map应该满足您的要求


附言:事实上,你为什么不使用数组或向量来做这项工作呢?在CPP中组成参数名确实不是一个好主意。

\u number
做成一个数组,并使用末尾的数字作为其索引?例如,你可以使用
int\u number0
int\u number1
,而不是
int\u number1
std::array\u number
。然后,分配
\u number[0]=10;
\u number[1]=20;
。这样,
auto number=\u number[i];
将允许您访问循环中的每一个。或者,您可以使用
std::无序的\u映射图\u number;
,并访问每一个,比如说,
auto number=\u number[“\u number”+std::to_字符串(i)]
。其中,第一种可能更有效,具体取决于您想做什么。@JustinTime按我想做的方式做这似乎不是一种可行的方法,因此解决方法是可行的。我非常喜欢第二种方法,但我使用了数组。感谢您的时间。欢迎光临,很高兴它有所帮助。
auto number = dynamic_cast<Int*>(this->findTheMemberWithName("level%i",i));