我有对象指针:(阵列的问题..如何管理指向对象的指针数组?
我需要生成对象的动态矢量,然后在 以操纵它在另一个类中返回。在下面的代码有 事件类是抽象的,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