2016-10-28 5 views
-1

私はこのようなコードでアクセスしたい私のヘッダーにいくつかの数字を持っています。動的な名前を持つクラスのメンバーにアクセスする方法Cocos2d-x C++

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 
} 

に私はこのような擬似コードで考えていた:

auto number = dynamic_cast<Int*>(this->findTheMemberWithName("level%i",i)); 

はC++でこのような何かをする方法はありますか?

ありがとうございます。ご挨拶

+0

'_number'を配列にし、最後の数字をインデックスとして使用しますか?たとえば、 'int _number0'と' int _number1'の代わりに 'int _number [2]'や 'std :: array _number'を使うことができます。次に、 '_number [0] = 10;'と '_number [1] = 20; 'を割り当てます。これにより、 'auto number = _number [i];'はループ内のそれぞれにアクセスできるようになります。 –

+0

また、 'std :: unordered_map _numbers;'を使って、それぞれに 'auto number = _numbers [" _ number "+ std :: to_string(i)]のようにアクセスすることもできます。 '。 –

+0

これらのうち、最初のものは、あなたがしたいことに応じて、より効率的です。 –

答えて

0

私はstd :: mapがあなたの要求を満たすべきだと思います。

P.S:実際に、配列やベクトルを使って仕事をしてみませんか? CPPのパラメータ名を作るのは本当に良い考えではありません。

関連する問題