Название: очистка памяти Отправлено: crossly от Февраль 26, 2010, 18:17 все доброго времени суток....
помогите разрулить ситуацию есть класс А Код: class A{ Код: class B{ Код: ... в первом случае я могу сделать delete a; а как быть во втором?? Название: Re: очистка памяти Отправлено: Пантер от Февраль 26, 2010, 19:11 В деструкторе B рубить все A. Не?
Название: Re: очистка памяти Отправлено: crossly от Февраль 26, 2010, 19:17 была такая мысль..... а что если мне после удаления b понадобится попользоваться ещё a?? ведь после delete b a похерится...как быть в таком случае...
Название: Re: очистка памяти Отправлено: Samuill от Февраль 26, 2010, 19:30 Тогда при delete b вы просто потеряете указатели на добавленные объекты и не сможете к ним обращаться, если, конечно, не позаботитесь об этом вне объекта b
Название: Re: очистка памяти Отправлено: Пантер от Февраль 26, 2010, 19:43 Вообще b->addA(new A()); //2 лучше не делать.
Название: Re: очистка памяти Отправлено: Rcus от Февраль 26, 2010, 19:44 Странный вопрос... Нужно просто выбрать контракт и следовать ему. Либо владение объектом передается, либо остается у создавшего. Разделение владения и слабые ссылки тоже работают.
Название: Re: очистка памяти Отправлено: Igors от Февраль 26, 2010, 19:48 была такая мысль..... а что если мне после удаления b понадобится попользоваться ещё a?? ведь после delete b a похерится...как быть в таком случае... Такое бывает, я часто решаю такКод: vector <A> mDataVec; |