Динамические объекты в Qt? |
Здравствуйте, гость ( Вход | Регистрация )
Динамические объекты в Qt? |
registr |
10.10.2011, 18:37
Сообщение
#1
|
Участник Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: 1 |
Как подчищаются динамические объекты (через new)? Освобождается память операционной системой или какими-то Qt-шными средствами?
Перефразирую вопрос. Почему в Qt Examples and Demos динамические объекты не удалаются через delete в деструкторах? |
|
|
Litkevich Yuriy |
12.10.2011, 20:20
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
У кого есть родители? SameObject *parent = new SameObject(); -- у этого объекта нет родителя (его надо удалять самостоятельно) ... OtherObject * o = new OtherObject(parent); -- а у этого объекта - ЕСТЬ (его удалит родитель, когда будет сам удалятся) Посмотри внимательно на описание конструктора QObject и его наследников. Они принимают в качестве аргумента родительский объект. А внутри кода, в том числе собственных объектов, указатель на родителя передаётся в базовый класс: MyObject::MyObject(QObject *parent) : QObject(parent) -- мы передаём parent в конструктор базового класса, чтобы вся механика родительско-дочерних связей работала штатным образом. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 1:59 |