Russian Qt Forum
Ноябрь 22, 2024, 09:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: должен ли я озаботится о зачистке памяти ? при new QGraphicsTextItem ?  (Прочитано 6605 раз)
andron81_81
Новичок

Offline Offline

Сообщений: 6


Просмотр профиля
« : Декабрь 11, 2023, 11:09 »

Ребята , привет.

Что - то я плохо читаю Шлеев этих, да и в закрепленной теме об утечках памяти в рубрике для новичков ответа я для себя не нашёл. Не понимаю нужно ли мне заботиться о том, чтобы подчищать память в подобных вещах ?
Должен ли я затереть память после использования new скажем примерно в таком коде ?
Код:
class text : public QGraphicsTextItem {
...
}

text* a = new text;
scene()->addItem( new text )

...

scene()->removeItem(a);

//надо ли делать delete(a); ???
« Последнее редактирование: Декабрь 11, 2023, 11:25 от andron81_81 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Декабрь 11, 2023, 14:58 »

https://doc.qt.io/qt-6/qgraphicsscene.html#addItem This scene takes ownership of the item.

https://doc.qt.io/qt-6/qgraphicsscene.html#removeItem The ownership of item is passed on to the caller (i.e., QGraphicsScene will no longer delete item when destroyed).

итого ответ на твой вопрос: да. Но если removeItem не вызывать, то и самому удалять не надо.
« Последнее редактирование: Декабрь 11, 2023, 15:01 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
andron81_81
Новичок

Offline Offline

Сообщений: 6


Просмотр профиля
« Ответ #2 : Декабрь 12, 2023, 17:31 »

Но если removeItem не вызывать, то и самому удалять не надо.

не в этом был вопрос.
« Последнее редактирование: Декабрь 12, 2023, 18:24 от andron81_81 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Декабрь 12, 2023, 20:23 »

все ответы даны выше. для приведенного куска кода и вопроса в нем ответ «да». только пишут "delete a", а не "delete(a)".
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
andron81_81
Новичок

Offline Offline

Сообщений: 6


Просмотр профиля
« Ответ #4 : Декабрь 14, 2023, 10:04 »

спасибо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.