У меня проблема с массивом указателей на объекты: (..
Мне нужно создать динамический вектор объекта и затем вернуть его в
Для того, чтобы манипулировать им в другом классе. В приведенном ниже коде есть
Класс события, который является абстрактным, и CarArrival, который наследует от него, и
может быть создан.
Внутри класса, который генерирует и заполняет массив, у меня есть эта функция:
Event** EventGenerator::getEvents() {
Event* cars[EVENTS];
for (int i=0; i<EVENTS; i++) {
cars[i] = new CarArrival(generator->getNextNumber(8,(float)sqrt(0.4)));
}
sort(cars, cars+(EVENTS), Event::cmp);
return cars;
}
Я вызываю эту функцию в другом классе следующим образом:
Event** cars = generator->getEvents();
for(int i=0; i<EVENTS; i++) {
cout << i <<":" << (*cars)[i]->getScheduleTime() << endl;
}
после печати первого элемента я получаю «Ошибка сегментации».
Я прочитал некоторые вещи в Интернете, и я понимаю, что ошибаюсь, поскольку (* cars) оценивается как
указатель на первый элемент массива, фактически я могу напечатать первый элемент, а не другой, но я не могу понять, как получить доступ к каждому элементу массива во втором классе.
Как я могу с этим столкнуться?
Спасибо всем,
Альберто