Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > new и delete


Автор: Evgesha 24.8.2006, 14:34
Обезательно ли после создания динамического объекта спомощью new
выполнять его удаление с помощью delete ? Или удаление обекта выполняется автомотически после закрытия формы.
И когда выполнять delete. Можно ли сразу после создания или потом когда все операции произведены.

Автор: _hunter 24.8.2006, 15:27
Цитата(Evgesha @  24.8.2006,  14:34 Найти цитируемый пост)
Обезательно ли после создания динамического объекта спомощью newвыполнять его удаление с помощью delete ?

не обязательно. но это вопрос типа "обязательно ли нужно открывать дверь перед ее прохождением"

Цитата(Evgesha @  24.8.2006,  14:34 Найти цитируемый пост)
Или удаление обекта выполняется автомотически после закрытия формы.

не выполнятся

Цитата(Evgesha @  24.8.2006,  14:34 Найти цитируемый пост)
И когда выполнять delete.

в принципе, когда хочеш...

Цитата(Evgesha @  24.8.2006,  14:34 Найти цитируемый пост)
Можно ли сразу после создания или потом когда все операции произведены.

можно и сразу после создания, но смысл? можно и потом...

Автор: Evgesha 24.8.2006, 17:36
Спасибо за исчерпывающие ответы 
 smile 

Автор: _hunter 24.8.2006, 18:46
всегда пожалуйста, приходите еще smile

Автор: Vyacheslav 28.8.2006, 09:50
Если речь идет VCL-классах, то  для некоторых из них вызов delete совершенно не обязателен. У большинства VCL-классов в качестве параметра констуктора передается владелец - Owner. Если этот владелец указан, то именно он явялется ответственным за уничтожения объекта
Пример
Код

TForm1* form = new TForm1( NULL ); // Owner не задан, удаляем сами
//...
delete form;
 

Код

TForm1* form = new TForm1( this ); // Owner задан, самим удалять не обязательно. Объект будет уничтожен при уничтожении владельца, которого представляет this 
//...

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)