Структура C ++, построение динамических имен - PullRequest
0 голосов
/ 03 марта 2011

Я сконструировал структуру в классе C ++, давайте посмотрим, как она называется Task

Я хотел бы инициировать новую конструкцию, основанную на индексе, который может меняться при каждом запуске программы, например

for ( i=1; i<=index,++i){

 Task ai;
}

таким образом, после цикла я хотел бы иметь структуры с именами a1, a2, a3, a4, ... an

Как я могу добавить число i в конецимя как его часть.

Ответы [ 3 ]

1 голос
/ 03 марта 2011

C ++ не имеет отражения, поэтому вы не можете динамически создавать такие имена переменных, как этот.Однако здесь полезны массивы / векторы:

std::vector<Task> tasks(ai); // a vector of ai x Task objects
0 голосов
/ 03 марта 2011

Как уже упоминалось, вы можете использовать std::vector<Task>, хотя я бы, вероятно, просто использовал динамически распределенный массив:

Task* tasks = new Task[index];
task[0] ...
task[1] ...

delete[] tasks;
0 голосов
/ 03 марта 2011

Используйте std :: vector ai и добавьте его в вектор. Это также решило бы проблему изменения индекса.

...