Holen Sie Sich Die Objekt-Zeiger Verweist
Habe ich eine QList, die ich eingefügt haben Zeiger von Objekten in. Ich bin versucht, Durchlaufen diese QList zu Lesen, die Namen dieser Objekte. Wann immer ich tun, ich erhalte die Adresse dieser Objekte zu widersetzen, um das Lesen der Objekt-name selbst. Ich Frage mich, wie würde ich in der Lage sein zu Lesen der Objekt-Namen anstelle der Adresse?
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";
}
InformationsquelleAutor Jon | 2012-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man die Dereferenzierung ich, müssen Sie die Funktion aufrufen, um den Namen von Ihrem Objekt. So etwas wie dieses:
Sie konnte nur zwei dereferenziert mit *:
(*(*i)).getName();
InformationsquelleAutor Tyler Gill
Wenn Sie derenference der iterator i (d.h.
*i
) Sie eine Referenz auf ein Objekt vom TypMyObject*
was ist ein Zeiger, Sie zu dereferenzieren, die wieder um eine Referenz auf Ihr Objekt:**i
ist genug, Klammern sind nicht notwendig.Ich habe gerade versucht, durch ändern der Zeile "cout << "\n" << *(*i) << "\n";", aber ich bekam die Fehlermeldung "C678: binary '<<': kein operator gefunden, die eine linke operand vom Typ 'QTextStream' (oder es gibt keine akzeptable conversion)"
InformationsquelleAutor zdan