Как правильно инициализировать сложный объект?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как правильно инициализировать сложный... Expand / Collapse
Автор
Сообщение
02.07.2001 18:54
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 02.07.2001 18:14
Сообщ.: 2, Visits: 23
Есть три класса:
1) point ->(double z, double y)
2) frame ->содержит CArray<point*,point*>
3) hull ->содержит CArray<frame*,frame*>
Как правильно инициализировать hull и избежать протечек памяти при работе?
Сообщ. #714860
03.07.2001 10:43
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298, Visits: 12 501
А в чем собственно проблема? Ты уже знаешь предопределенно каким количеством элементов будут заполнены эти массивы? Если да, то стоит подумать, а зачем тебе вообще динамические массивы? :) Если нет, то в деструкторе каждого из классов проводи очистку массивов.

С уважением, Владимир.
Сообщ. #714923
04.07.2001 16:38
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 02.07.2001 18:14
Сообщ.: 2, Visits: 23
Спасибо за ответ!
Идея была такая, что объект hull мог содержать произвольное количество объектов *frame ну и т.д. Все это хранится на диске, прога писалась под консоль и я использовал C++ мантпуляторы:
class frame
{
public:
friend istream& operator>>(istream& s, frame& f);
.......
};

...
istream& operator>>(istream& s, frame& f)
{
int max_point;
s>>f.x_pos>>max_point;//тут конечно-бы проверить
//max_point на вшивость
for(int i=0;i<max_point;i++)
{
point* fpt = new point();
s>>(*fpt);
f.point_array.SetAtGrow(i, fpt);
}
return s;
}

Наверное инициализация сделана не совсем корректно.
Возможно есть еще пути?
Могу код прислать.
Сообщ. #715144
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 9:46