Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: andron81_81 от Декабрь 11, 2023, 11:09



Название: должен ли я озаботится о зачистке памяти ? при new QGraphicsTextItem ?
Отправлено: andron81_81 от Декабрь 11, 2023, 11:09
Ребята , привет.

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

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

...

scene()->removeItem(a);

//надо ли делать delete(a); ???


Название: Re: должен ли я озаботится о зачистке памяти ? при new QGraphicsTextItem ?
Отправлено: kambala от Декабрь 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 не вызывать, то и самому удалять не надо.


Название: Re: должен ли я озаботится о зачистке памяти ?
Отправлено: andron81_81 от Декабрь 12, 2023, 17:31
Но если removeItem не вызывать, то и самому удалять не надо.

не в этом был вопрос.


Название: Re: должен ли я озаботится о зачистке памяти ? при new QGraphicsTextItem ?
Отправлено: kambala от Декабрь 12, 2023, 20:23
все ответы даны выше. для приведенного куска кода и вопроса в нем ответ «да». только пишут "delete a", а не "delete(a)".


Название: Re: должен ли я озаботится о зачистке памяти ? при new QGraphicsTextItem ?
Отправлено: andron81_81 от Декабрь 14, 2023, 10:04
спасибо