获取对象指针指向的对象

Get The Object Pointer Is Pointing To

本文关键字:对象 取对象 指针 获取      更新时间:2023-10-16

我有一个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";
}

当您取消引用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";
}

当你取消对迭代器i(即*i)的引用时,你是对类型为MyObject*的对象的引用,它是一个指针,你必须再次取消对它的引用才能获得对对象的引用:

*(*i)