Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Заблокирован
1

Есть ли в Qt сборщик мусора?

17.07.2013, 18:26. Показов 3937. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Видел много примеров, где особо не беспокоятся о delete, например в деструкторе, об объектах, созданных при помощи new... Может к Qt есть некий сборщик мусора типа C#-вского?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2013, 18:26
Ответы с готовыми решениями:

сборщик мусора в qt
Заметил, что в примерах нет удаление памяти. Разве в qt автоматически удаляется память?

Сборщик мусора
Здравствуйте, есть такая проблема. Идет работа с прибором, который в реальном времени шлет данные,...

Сборщик мусора
Доброго вам времени суток! У меня вопрос можно ли автоматизировать удаление объектов размещаемых в...

Сборщик мусора
Собственно у меня вопрос более теоретический. В AS 3.0 есть сборщик мусора, благодаря которому мы...

11
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
17.07.2013, 18:53 2
Сборщика мусора нет, но есть иерархия QObject, которая позволяет неявно удалять вместе с объектом древо потомков.
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
17.07.2013, 21:38 3
Фишка вот в чем: как сказали выше, у Qt есть иерархия объектов QObject, засчет чего при уничтожении материнского объекта удаляются все дочерние
0
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
18.07.2013, 10:03 4
что мешает юзать shared_ptd? нынче компиляторы поддерживают его в стандартной поставке, а не в бусте.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
18.07.2013, 10:19 5
Teranozavr, стыдно не знать С++ и паттернов проектирования.
0
Заблокирован
18.07.2013, 10:22  [ТС] 6
Как бы там ни было, надеется на магию думаю не стоит и лучше самому всё чистить... А по поводу умных указателей, это те, которые в tr1 идут или какие? По - моему в Qt тоже что - то подобное было в QPointer
0
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
18.07.2013, 11:17 7
Цитата Сообщение от Teranozavr Посмотреть сообщение
надеется на магию думаю не стоит и лучше самому всё чистить...
Не лучше ниразу, ибо в большом проекте за всем уследить нереально.
Цитата Сообщение от Teranozavr Посмотреть сообщение
А по поводу умных указателей, это те, которые в tr1 идут или какие?
в стандартной поставке стл нового стандарта.
1
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
18.07.2013, 11:26 8
Цитата Сообщение от Teranozavr Посмотреть сообщение
По - моему в Qt тоже что - то подобное было в QPointer
Есть QSharedPointer, это аналог shared_ptr, а QPointer - это указатель, который автоматически обнуляется, когда объект удален. И еще - QSharedPointer (как и QPointer, и QWeakPointer) могут работать только с классами, унаследованными от QObject.
1
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
20.07.2013, 16:32 9
Цитата Сообщение от zenw Посмотреть сообщение
QSharedPointer (как и QPointer, и QWeakPointer) могут работать только с классами, унаследованными от QObject.
Шо, простите?
Цитата Сообщение от NoMasters Посмотреть сообщение
есть иерархия QObject, которая позволяет неявно удалять вместе с объектом древо потомков
А еще есть deleteLater - отправляет событие и указатель this, который будет торжественно удален на следующей итерации event loop.
1
154 / 110 / 9
Регистрация: 12.06.2013
Сообщений: 168
20.07.2013, 21:36 10
Цитата Сообщение от fasked Посмотреть сообщение
Шо, простите?
A guarded pointer, QPointer<T>, behaves like a normal C++ pointer T *, except that it is automatically set to 0 when the referenced object is destroyed (unlike normal C++ pointers, which become "dangling pointers" in such cases). T must be a subclass of QObject.
http://qt-project.org/doc/qt-5... inter.html
Да, с QSharedPointer и QWeakPointer я погорячился, он может использоваться с любыми классами, так что мое уверждение верно только в отношении QPointer. Сорри.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
21.07.2013, 09:25 11
Цитата Сообщение от zenw Посмотреть сообщение
мое уверждение верно только в отношении QPointer
Да, потому что QPointer слушает сигнал destroyed, к слову, единственный сигнал, который QObject отправляет всегда и при любых люстоятельствах.
QSharedPointer и QWeakPointer же использует обычный подсчет ссылок. И именно поэтому разработчики Qt советуют переходить с QPointer на QWeakPointer.
1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
21.07.2013, 15:34 12
Цитата Сообщение от Teranozavr Посмотреть сообщение
Видел много примеров, где особо не беспокоятся о delete, например в деструкторе, об объектах, созданных при помощи new...
Не беспокоится видать по тому что объектами управляет "владелец" он их и удаляет.
0
21.07.2013, 15:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2013, 15:34
Помогаю со студенческими работами здесь

Сборщик мусора
Соберет ли сборщик мусора поля объекта C, такие как &quot;a&quot; и &quot;b&quot;, или же нужно самому в явной форме...

сборщик мусора
Доброго времени суток. Подскажите пожалуйста каким образом сборщик мусора выбирает какие созданные...

Сборщик мусора
Есть базовые знания C++\Python и алгоритмов, но нет опыта :( Может кто - нибудь возьмет к себе в...

Сборщик мусора у VB6
In java language and .NET we have Garbage, that clean all not used resources . How at run time...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru