Допустим, я хочу реализовать мешок с червями. У меня есть class Worm, у которого есть int ID атрибута. У меня также есть класс Bag:
class Bag{
// pointer to a 1D array of pointers to all the worms
Worm** population;
// constructor
Bag(){
// initiate 1D population of the worms
int N = 100;
Worm** population = new Worm*[N];
for (int i=0; i<N; i++){
Worm new_worm(i);
population[i] = &new_worm;
}
}
}
, поскольку N
известно во время компиляции. Я не уверен, должен ли массив выделяться динамически?
Моя проблема в том, что позже в коде я хотел бы выполнить:
Bag bag();
int ID = bag.population[10]->ID;
, и код компилируется, но когда я выполняю, я получаю Segmentation fault: 11
. Я проверил (комментируя), что проблема вызвана точной строкой извлечения идентификатора.
Как мне получить доступ к полям и вызывать методы класса Worm в сумке?