我有對象指針:(陣列的問題..如何管理指向對象的指針數組?
我需要生成對象的動態矢量,然後在 以操縱它在另一個類中返回。在下面的代碼有 事件類是抽象的,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;
}
我援引onther類此功能以這樣的方式
Event** cars = generator->getEvents();
for(int i=0; i<EVENTS; i++) {
cout << i <<":" << (*cars)[i]->getScheduleTime() << endl;
}
的第一個元素的打印後,我得到「段錯誤」。
我已經在線閱讀了一些東西,我知道我錯誤,因爲(*汽車)評估爲 指向數組的第一個元素,實際上我可以打印第一個元素而不是其他,但我不能弄清楚如何訪問第二類中數組的每個元素。
我該如何面對這個問題?
感謝所有,
阿爾貝託
「我需要生成一個對象的動態矢量**」......嗯,如果只有一個「std :: vector」... –
如果你真的必須使用指針。儘可能使用STL,經過良好測試,可爲您節省很多麻煩。 – hochl