C++ 获取指针指向的对象

C++ 获取指针指向的对象,c++,C++,我有一个QList,我在其中插入了对象指针。我试图遍历这个QList来读取这些对象的名称。每当我这样做时,我都会得到这些对象的地址,而不是读取对象名称本身。我想知道我如何才能读取对象名称而不是地址 QList<MyObject*> newObjectList; QList<MyObject*>::iterator i; MyObject *pNewObject = new MyObject(name); MyObject.append(pNewObject); fo

我有一个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";
}
QList-newObjectList;
QList::迭代器i;
MyObject*pNewObject=新的MyObject(名称);
MyObject.append(pNewObject);
对于(i=newObjectList.begin();i!=newObjectList.end();i++){

cout当您取消引用迭代器i(即,
*i
)时,您必须再次取消引用类型为
MyObject*
的对象,即指针,以获得对对象的引用:

*(*i)

在解引用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";
}
for(i=newObjectList.begin();i!=newObjectList.end();i++){
//我现在是迭代器,指向一个指针
//取消了两次引用。

cout
**i
就足够了,括号是不必要的。我只是通过将行更改为“cout Thank you.It worked:)来尝试这一点。除了使用箭头符号(->)之外,还有其他方法吗?您可以使用*:
(*(*i)).getName();