我正在尝试创建一个Object指针数组,以便对某些数据进行排序。这是我的代码:
ArrayClass<Exoplanet*> exoplanets;
int count = 0;
for (int i = 0; i < exosystems.size(); ++i) {
ArrayClass<Exoplanet> *temp = exosystems.at(i)->getPlanets();
for (int k = 0; k < temp->size(); ++k) {
exoplanets.add(&temp->at(k));
}
temp->~ArrayClass();
}
//check to see if pointer array is working properly
for (int i = 0; i < exoplanets.size(); ++i) {
exoplanets.at(i)->printPlanet();
cout << endl;
}
ArrayClass<Exoplanet> *Exosystem::getPlanets(void) const
{
return planets;
}
最后还包含了getPlanets()函数以供参考。每当我在最后一个for循环中打印行星时,所有的系外行星指针都指向从getPlanet()函数返回的最后一个系外行星,最后一次通过第一个for循环。我认为这与exoplanets.add(&amp; temp-&gt; at(k))有关,但我不知道如何解决它。提前致谢