|
|
|
новичок
      
участник
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 и избежать протечек памяти при работе?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
А в чем собственно проблема? Ты уже знаешь предопределенно каким количеством элементов будут заполнены эти массивы? Если да, то стоит подумать, а зачем тебе вообще динамические массивы? :) Если нет, то в деструкторе каждого из классов проводи очистку массивов.
С уважением, Владимир.
|
|
|
|
|
новичок
      
участник
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; }
Наверное инициализация сделана не совсем корректно. Возможно есть еще пути? Могу код прислать.
|
|
|
|