2016-01-19 2 views
1

Я пытаюсь сделать что-то вроде этого:Merge номер для объекта имя

int i; 
Object a + to_string(i); 

Для создания объектов с именами a1, a2, a3 ...

Возможно ли это?

+1

За имя? Вам нужно будет использовать препроцессор: #define MYNAME (x) a ## i –

+0

Похоже, вы хотите получить массив или (лучше) 'std :: vector'. –

ответ

0

Это не представляется возможным использовать:

int; 
Object a + to_string(i); 

Возможно, с помощью std::map является то, что вы ищете.

std::map<std::string, Object> theMap; 
theMap[std::string("a") + to_string(i)] = Object(); 
0

Похоже, что вы хотите, это массив, но если вы хотите «безопасный» вариант, который уважает любое входное целое, вы бы написать это:

std::map<int,Object> a; 
int i = /*...*/; 
a[i].methodName(); 

Если вы хотите имена переменных определяется динамически во время выполнения, это невозможно, поскольку имена переменных существуют только до этапа компиляции.

Смежные вопросы