我需要将类的指针(从 QObject 继承)插入到 QList 中。我知道可以使用以下语法:
。H
QList<MyObject*> list;
.cpp
list.append(new MyObject("first", 1));
list.append(new MyObject("second", 2));
...
然后释放内存:
if(!list.isEmpty())
{
qDeleteAll(list);
list.clear();
}
这应该是有效的并且不会导致任何内存泄漏(据我所知)。但是,我需要先初始化对象,然后再将它们添加到集合中。下面这段代码会不会导致一些错误,比如内存泄漏或悬空指针(我将使用与上面相同的方式删除指针)?
MyObject *obj;
for(i = 0; i < 5; i++)
{
obj = new MyObject();
if(!obj.Init(i, map.values(i)))
{
// handle error
}
else
{
list.append(obj);
}
}
谢谢。