Rou*_*uta 7 c++ qt pointers qlist
我需要将类的指针(从QObject继承)插入到QList中.我知道可以使用以下语法:
.H
QList<MyObject*> list;
Run Code Online (Sandbox Code Playgroud)
的.cpp
list.append(new MyObject("first", 1));
list.append(new MyObject("second", 2));
...
Run Code Online (Sandbox Code Playgroud)
然后释放内存:
if(!list.isEmpty())
{
qDeleteAll(list);
list.clear();
}
Run Code Online (Sandbox Code Playgroud)
这应该是有效的,不会导致任何内存泄漏(据我所知).但是,我需要在将对象添加到集合之前初始化对象.以下代码段是否会导致内存泄漏或悬空指针等错误(我将使用相同的方法删除上面的指针)?
MyObject *obj;
for(i = 0; i < 5; i++)
{
obj = new MyObject();
if(!obj.Init(i, map.values(i)))
{
// handle error
}
else
{
list.append(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.