【发布时间】:2011-04-30 14:02:25
【问题描述】:
我对 Qt 内存管理有点怀疑。
我们以 Listview 为例,在 listview 中我们通过动态分配内存来添加每个项目。所以在这种情况下,我们是否需要手动删除所有“新”的项目。
例如:
Qlistview *list = new Qlistview;
QStandardItemModel *mModel = new QStandardItemModel();
list ->setModel(mModel);
for(int I =0;i<10;i++)
{
QsandardItem *item = new QsandardItem(“Hi”);
mModel->appendRow(item);
}
在这个例子中,是否应该手动删除项目?
【问题讨论】:
-
找出答案的可靠方法 - 查看代码。
-
嗯,它的繁琐工作:)
-
Qt 文档经常声明某个对象是否拥有传递对象的所有权。在 QStandardItemModel 的情况下,它并没有在任何地方被提及(例如它是针对 setItem(),但不是针对 appendRow())
-
相关(扩展答案):stackoverflow.com/q/2491707