Вопрос про деструктор и delete() |
Здравствуйте, гость ( Вход | Регистрация )
Вопрос про деструктор и delete() |
registr |
9.8.2011, 13:50
Сообщение
#1
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Смотрю демо QtOpenGL. В классе виджета часто определяется деструтор. Обычно в нём удаляют дисплейные списки, текстурные объекты и т.д. Но сам деструктор явно нигде не вызывается. Вопрос, может он вызывается автоматически после закрытия приложения? И что будет, если я не определю деструктор, то как подчистится память от дисплейных списков и т.д. Если не ошибаюсь, речь идет о сборке мусора. Т.е. существует ли в Qt автоматическая сборка муроса без деструкторов? Если таковая сборка мусора есть, то зачем тогда нужен деструктор?
И второй вопрос. Если я создаю динамический виджет, то и удалять его должен через delete(), а не через деструктор виджета. Как delete() понимает, что еще занята память под дисплейные списки и т.д. и что ее нужно освободить? Буду признателен за хорошее разяснение этих вопросов)) |
|
|
Litkevich Yuriy |
9.8.2011, 16:27
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Iron Bug |
9.8.2011, 16:37
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Самое лучшее разъяснение этих вопросов - книжка Бьёрна Страуструпа "Язык программирования C++". Читать основы С++ до полного просветления, иначе объяснять просто бесполезно.
|
|
|
registr |
9.8.2011, 16:42
Сообщение
#4
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Всем спасибо, вроде уже разобрал, что к чему.
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 0:47 |