Iterator zu Pointer
-
Hallo,
Hab ein kleines Problem, und zwar programmiere ich gerade ein simples BlackJack, in der Klasse hand speichere ich jeweils die Karten, und zwar in einem Vector mit Pointern zu der Klasse card, nun versuche ich die Punkte zu zählen, indem ich mit einem Iterator durch den Vector loope und die Punkte einer Variable hinzufüge, das ganze sieht so aus:
public: int GetPoints() { int points; for (iter = m_cards.begin(); iter != m_cards.end(); iter++) { points += *iter->GetPoint(); // iter->GetPoint(); *iter.GetPoint(); iter.GetPoint(); << alles bereits versucht } return points; } private: vector<card*> m_cards; vector<card*>::const_iterator iter;Ich erhalte folgende Fehlermeldung:
error C2227: left of '->GetPoint' must point to class/struct/union Error executing cl.exe.
-
Schon mal
(*iter)->GetPoint();probiert? -> bindet stärker als *.
-
Probier mal iter.GetPoint()?
-
Danke für die Antworten!
Leider erhalte ich bei diesen beiden Versionen den gleichen Fehler.
-
Ahhh,
(*iter)->GetPoint();
klappt, dankeschön :p
-
Jedoch gibt dies eine falsche Zahl zurück, und zwar:
-572663...
-
Kóyaánasqatsi schrieb:
Probier mal iter.GetPoint()?
fail? wie soll das denn bitte gehen - du weist doch nun langsam, wie iteratoren funktionieren und welche operatoren man überladen kann und welche nicht...
-
unskilled schrieb:
Kóyaánasqatsi schrieb:
Probier mal iter.GetPoint()?
fail? wie soll das denn bitte gehen - du weist doch nun langsam, wie iteratoren funktionieren und welche operatoren man überladen kann und welche nicht...
Jo, wollte es erst editieren, dachte mir aber dann das es keiner merken wird

-
IteratorConfusion schrieb:
Jedoch gibt dies eine falsche Zahl zurück, und zwar:
-572663...
liegt aber nicht am gezeigten stück code - das sieht völlig korrekt aus.
könnte max. nen über-/unterlauf geben - das müsstest du aber selbst abschätzen können, ob dies der fall ist/sein kann...bb
-
Die Variable points wird nicht initialisiert!