Доброго времени суток, Булчане!
Мне просто по-зарез нужна ваша помощь. Конечно, для гуру мой вопрос покажется банальным (наверно), но я не могу его решить. Вообщем вот что имею:
Классы cGeom и cGeomManager содержащий функцию и вектор:
class cGeom
{
...
}
class cGeomManager
{
...
vector<cGeom> geoms;
cGeom *createGeom();
...
}
cGeom *cGeomManager::createGeom()
{
this->geoms.push_back( cGeom() );
return &this->geoms.back();
}
ну и далее это дело использую слудеющим образом:
cGeomManager* geom = new cGeomManager;
cGeom *geom1 = geom->createGeom();
cGeom *geom2 = geom->createGeom();
cGeom *geom3 = geom->createGeom();
И вот тут проблема. Когда я создаю первый объект(geom1) им можно управлять как угодно (т.е. использовать все функции и переменные этого объекта и т.д.). Но когда создаётся второй и последующие объекты - к созданным ранее доступ теряется(создался geom2 - geom1 больше для меня недоступен). Головой понимаю что наверное что-то происходит с указателем, а чего происходит и как это решить - не пойму.
Уже прочитал все ссылки в гугле по вопросам указателей - ответа не нашёл. Потому прошу помощи у знающих. И не пинайте за говнокод, пожалуйста
зыЖ пробовал делать массив указателей в классе cGeomManager (ну т.е. vector<cGeom*>), но становилось ещё хуже, потому что я банально не понимаю как тогда по этому массиву пробежаться в цикле.