Russian Qt Forum
Ноябрь 27, 2024, 02:44
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
по поводу delete
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: по поводу delete (Прочитано 11071 раз)
alexman
Гость
Re: по поводу delete
«
Ответ #15 :
Март 25, 2010, 00:06 »
Зачем париться с удалением виджетов? Ведь в Qt есть механизм для этих целей!?
Записан
cya-st
Гость
Re: по поводу delete
«
Ответ #16 :
Март 25, 2010, 00:12 »
Цитата: alexman от Март 25, 2010, 00:06
Зачем париться с удалением виджетов? Ведь в Qt есть механизм для этих целей!?
А диалогов?
Записан
alexman
Гость
Re: по поводу delete
«
Ответ #17 :
Март 25, 2010, 00:17 »
Смотря как реализовывать! Если по new, то можно создать один раз, и тогда опять работает механизм Qt (имеется ввиду, что есть родитель).
Записан
Wachburn
Гость
Re: по поводу delete
«
Ответ #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
Гость
Re: по поводу delete
«
Ответ #19 :
Март 25, 2010, 00:20 »
Цитата: Wachburn от Март 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 автоматически исключит его из списка владельца.
Это уже сказано выше...
Записан
Wachburn
Гость
Re: по поводу delete
«
Ответ #20 :
Март 25, 2010, 00:25 »
Цитата: alexman от Март 25, 2010, 00:20
Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Записан
alexman
Гость
Re: по поводу delete
«
Ответ #21 :
Март 25, 2010, 00:27 »
Цитата: Wachburn от Март 25, 2010, 00:25
Цитата: alexman от Март 25, 2010, 00:20
Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!
Записан
Wachburn
Гость
Re: по поводу delete
«
Ответ #22 :
Март 25, 2010, 00:31 »
Цитата: alexman от Март 25, 2010, 00:27
Цитата: Wachburn от Март 25, 2010, 00:25
Цитата: alexman от Март 25, 2010, 00:20
Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!
кто такой zenden ?
Записан
alexman
Гость
Re: по поводу delete
«
Ответ #23 :
Март 25, 2010, 00:32 »
Цитата: Wachburn от Март 25, 2010, 00:31
Цитата: alexman от Март 25, 2010, 00:27
Цитата: Wachburn от Март 25, 2010, 00:25
Цитата: alexman от Март 25, 2010, 00:20
Это уже сказано выше...
мало ли, может товарищи не понимают о каком механизме ты имеешь ввиду, так я подробнее написал
Это не я сказал, а zenden!
кто такой zenden ?
См. выше...
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: по поводу delete
«
Ответ #24 :
Март 25, 2010, 02:18 »
Цитата: niXman от Март 24, 2010, 23:03
вот скажите, к примеру, сколько нужно создать объектов типа QDialog, к примеру, на стеке, что получить сие чудо?
Нет ничего проще как взять и проверить самому )) Если у тебя приложение с одним диалогом и одним кнопарем ОК, то проблем в этом случае не будет.
Но как правило приложение не ограничивается одними диалогами, есть еще всякого рода структуры данных разного объема.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
niXman
Гость
Re: по поводу delete
«
Ответ #25 :
Март 25, 2010, 02:46 »
pastor
, понятно, что не все пишут программы с одним диалогом и одним баттоном.
просто я, из своего опыта, могу сказать, что у меня такой ошибки не возникало никогда. при том, на весьма не простых проектах. в том числе и на Qt.
и да, я не размещаю на стеке массивы объектов/структур.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...