
Qt/C++ - Урок 059. Требуется ли удалять QStandardItem из памяти вручную при вызове метода clear в модели данных?
При работе с таблицами, да и вообще с различными данными в C++ требуется контроль над удалением, чтобы не было утечек памяти. Но требуется ли такой тотальный контроль при удалении объектов QStandardItem помещённых вQStandardItemModel , у которой вызвали метод clear ?
Такой вопрос может возникнуть исходя из того, каким образом обычно добавляются объекты QStandardItem вQStandardItemModel, а именно:
- QList<QStandardItem *> items;
- items.append(new QStandardItem("Item 1"));
- items.append(new QStandardItem("Item 2"));
- items.append(new QStandardItem("Item 3"));
- model->appendRow(items);
И так далее в цикле для заполнения необходимого числа строк. При этом указатели на данные объекты нигде в коде больше не фигурируют и не удаляются. Поэтому и возникает вопрос о том, что происходит, если вызвать метод clear .
Когда объект QStandardItem передаётся в QStandardItemModel , то права собственности на данные объекты передаются в модель. И при вызове метода clear модель автоматически удаляет эти объекты из памяти.
![]()
Это интересно
0
|
|||
Последние откомментированные темы: