我有一个QList,我已经插入了对象的指针。我试图遍历此QList以读取这些对象的名称。每当我这样做,我得到这些对象的地址,而不是阅读对象名称本身。我想知道如何才能读取对象名而不是地址?
QList<MyObject*> newObjectList;
QList<MyObject*>::iterator i;
MyObject *pNewObject = new MyObject(name);
MyObject.append(pNewObject);
for (i = newObjectList.begin(); i != newObjectList.end(); i++) {
cout << "\n" << *i << "\n";
}
答案 0 :(得分:4)
当您取消引用i时,您需要调用该函数以从您的对象获取名称。像这样:
for (i = newObjectList.begin(); i != newObjectList.end(); i++) {
// i right now is the iterator, and points to a pointer. So this will need to be
// dereferenced twice.
cout << "\n" << (*i)->getName() << "\n";
}
答案 1 :(得分:2)
当您取消引用迭代器i(即*i
)时,您引用了一个类型为MyObject*
的对象,它是一个指针,您必须再次取消引用以获取对象的引用:< / p>
*(*i)