Russian Qt Forum
Ноябрь 27, 2024, 02:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: по поводу delete  (Прочитано 11070 раз)
alexman
Гость
« Ответ #15 : Март 25, 2010, 00:06 »

Зачем париться с удалением виджетов? Ведь в Qt есть механизм для этих целей!?
Записан
cya-st
Гость
« Ответ #16 : Март 25, 2010, 00:12 »

Зачем париться с удалением виджетов? Ведь в Qt есть механизм для этих целей!?
А диалогов?
Записан
alexman
Гость
« Ответ #17 : Март 25, 2010, 00:17 »

Смотря как реализовывать! Если по new, то можно создать один раз, и тогда опять работает механизм Qt (имеется ввиду, что есть родитель).
Записан
Wachburn
Гость
« Ответ #18 : Март 25, 2010, 00:19 »

вот что пишут:
http://www.crossplatform.ru/node/25
http://www.opennet.ru/docs/RUS/qt3_prog/c345.html

Механизм "владелец-подчиненный" реализован в классе QObject, который является предком как для QWidget, так и для QLayout. Когда создается некий объект (виджет, менеджер компоновки или что-то еще), для которого явно указывается владелец, то он добавляется владельцем в свой список подчиненных компонентов. Когда владелец уничтожается, он проходит по списку подчиненных компонентов и уничтожает их одного за другим. Подчиненные компоненты, в свою очередь просматривают свои списки и уничтожают компоненты, подчиненные им и так до тех пор, пока дело не дойдет до компонентов, которые не имеют подчиненных объектов.

Этот механизм упрощает управление памятью в приложении, снижая риск "утечки". Единственные объекты, которые необходимо уничтожать явно -- это те, которые были созданы оператором new, и не имеют владельца. Если первым удаляется подчиненный компонент, то Qt автоматически исключит его из списка владельца.
Записан
alexman
Гость
« Ответ #19 : Март 25, 2010, 00:20 »

вот что пишут:
http://www.crossplatform.ru/node/25
http://www.opennet.ru/docs/RUS/qt3_prog/c345.html

Механизм "владелец-подчиненный" реализован в классе QObject, который является предком как для QWidget, так и для QLayout. Когда создается некий объект (виджет, менеджер компоновки или что-то еще), для которого явно указывается владелец, то он добавляется владельцем в свой список подчиненных компонентов. Когда владелец уничтожается, он проходит по списку подчиненных компонентов и уничтожает их одного за другим. Подчиненные компоненты, в свою очередь просматривают свои списки и уничтожают компоненты, подчиненные им и так до тех пор, пока дело не дойдет до компонентов, которые не имеют подчиненных объектов.

Этот механизм упрощает управление памятью в приложении, снижая риск "утечки". Единственные объекты, которые необходимо уничтожать явно -- это те, которые были созданы оператором new, и не имеют владельца. Если первым удаляется подчиненный компонент, то Qt автоматически исключит его из списка владельца.
Это уже сказано выше...
Записан
Wachburn
Гость
« Ответ #20 : Март 25, 2010, 00:25 »

Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Записан
alexman
Гость
« Ответ #21 : Март 25, 2010, 00:27 »

Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!
Записан
Wachburn
Гость
« Ответ #22 : Март 25, 2010, 00:31 »

Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!

кто такой zenden ?
Записан
alexman
Гость
« Ответ #23 : Март 25, 2010, 00:32 »

Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!

кто такой zenden ?

См. выше...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #24 : Март 25, 2010, 02:18 »

вот скажите, к примеру, сколько нужно создать объектов типа QDialog, к примеру, на стеке, что получить сие чудо? Подмигивающий

Нет ничего проще как взять и проверить самому )) Если у тебя приложение с одним диалогом и одним кнопарем ОК, то проблем в этом случае не будет.
Но как правило приложение не ограничивается одними диалогами, есть еще всякого рода структуры данных разного объема.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
niXman
Гость
« Ответ #25 : Март 25, 2010, 02:46 »

pastor, понятно, что не все пишут программы с одним диалогом и одним баттоном.
просто я, из своего опыта, могу сказать, что у меня такой ошибки не возникало никогда. при том, на весьма не простых проектах. в том числе и на Qt.
и да, я не размещаю на стеке массивы объектов/структур.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 22.