My QList保存指向类的指针。我试图遍历QList,但它的所有元素似乎只包含我分配给QList的最后一个指针。追加和遍历QList
代码:
QList<fooClass*> myList;
fooClass *pNewFooA = new fooClass("Bob");
myList.append(pNewFooA);
fooClass *pNewFooB = new fooClass("Jen");
myList.append(pNewFooB);
fooClass *pNewFooC = new fooClass("Mel");
myList.append(pNewFooC);
QList<fooClass*>::iterator i;
for (i = myList.begin(); i != myList.end(); i++) {
cout << (*i)->getName() << "\n";
}
输出:
Mel
Mel
Mel
而不是使用.append()的,我也试过以下,但它没有工作:
- myList中。的push_back( “佐爱”);
- myList < <“zoe”;
- myList + =“zoe”;
fooClass.cpp
QString name = "";
QString fooClass::getName()
{
return name;
}
fooClass::fooClass(QString newName)
{
name = newName;
}
你为什么要在'QList'上创建你的迭代器而不是'QList '? –
talnicolas
2012-02-17 20:03:29
对不起,我的意思是QList。我只是改变了我的原始代码的几个名字,所以它更容易理解:) –
Jon
2012-02-17 20:05:39
我们需要您的'fooClass'声明至少 – Lol4t0 2012-02-17 20:06:52