Russian Qt Forum

Qt => Общие вопросы => Тема начата: crashtua от Август 03, 2011, 13:04



Название: Есть ли в Qt сборщик мусора для QObject?
Отправлено: crashtua от Август 03, 2011, 13:04
Почему возник такой вопрос? Вот смотрю на void QWidget::keyReleaseEvent ( QKeyEvent * event ) [virtual protected], QKeyEvent  по ссылке передают, так вот, нужно ли его вручную после обработки удалять, что бы освободить память или он сам где то удаляется?


Название: Re: Есть ли в Qt сборщик мусора для QObject?
Отправлено: kambala от Август 03, 2011, 14:48
как правило, если не ты создал объект, то и не тебе его удалять. а вообще QObject сам удаляет всех своих детей.


Название: Re: Есть ли в Qt сборщик мусора для QObject?
Отправлено: lit-uriy от Август 03, 2011, 18:42
>>как правило, если не ты создал объект, то и не тебе его удалять
Если в документации не оговорено иное.

Обычно нужно смотреть по этому поводу документацию для методов в чих именах присутствует слово take (в значении вытащить/вынуть) когда возвращается указатель на объект, вынутый полностью из некого контейнера (например, элемент из QTableWidget) и соответственно лишившийся родителя. Объект (наследник QObject) не имеющий родителя нужно удалять самостоятельно.


Название: Re: Есть ли в Qt сборщик мусора для QObject?
Отправлено: crashtua от Август 06, 2011, 17:34
Спасобо, дотошно обьяснили.