Dereferenzierung Interator auf Zeiger!!!
-
Hallo,
Habe wie jeder hier auch eine Frage, wäre super , wenn mir jemand weiter helfen könnte!

Es existiert eine Klasse Item.
Diese Objekte der Klasse Item befinden sich in einer Liste „inventar“ vom Typ <Item*> welche ein Element eines jeden Objektes der Klasse Player ist.
Also jeder Player hat eine Inventarliste, die die einzelnen Items enthält.
Das Problem ist, das diese Liste Zeiger auf Item-Objekte enthält und ich jetzt nicht weiss, wie ich in einer Methode der Klasse Player über einen Iterator auf die zu Item-Objekten definierten Methoden zugreifen kann
#include „Player.h“
void Player::showInventory()
{
list<Item*>::const_iterator Iter;
for ( Iter = inventar.begin(); Iter != inventar.end(); Iter++ ){
****hier möchte ich nun auf die Methode „print“ des zum Item Zeigers gehörenden Objektes zugreifen.
Normalerweise würde ich das so machen Iter->print()
Das geht aber anscheinend nicht, da Iter nur ein Zeiger ist und so *Iter->… oder *(*Iter)->print() geht auch nicht?!}
}
Danke
Sepp
-
entweder (*iter)->print() oder (**iter).print()
-
Hallo,
VIELEN DANK
!!!!Warum reicht hier (*iter)->print() aber ein '*', somit müsset doch eigentlich nur auf den Zeiger der Liste dereferenziert werden und nicht direkt auf das Objekt, auf das der Zeiger zeigt?
Macht das die Klammer?
Danke
-
* : erste Dereferenzierung
-> : zweite Dereferenzierung (ist NICHT dasselbe wie . sondern wie ein "*.")Gruß,
Simon2.
-
Hallo Simon,
ah stimmt -> ist ja auch ein Dereferenzierer ich Birne

Vielen Dank, echt ein super Forum hier mit sehr hilfsbereiten Leuten
Grüße
Jens