Iteration durch einen Vektor von Zeigern

7

Ich versuche, die Handkarten eines Spielers zu durchlaufen.

Player.cpp

%Vor%

Das iter in

%Vor%

kommt derzeit mit dem "Fehler: Ausdruck muss Zeiger-zu-Klasse Typ haben".

Ebenso wird current_cards mit:

deklariert %Vor%

Außerdem ist die Methode display_card () einfach:

Card.cpp

%Vor%

Ich habe mir verschiedene Ressourcen angesehen und alles, was für ähnliche Probleme vorgeschlagen wurde, hat bei mir nicht funktioniert. Danke für jede Hilfe!

    
Red Shift 27.04.2014, 02:58
quelle

3 Antworten

22

Versuchen Sie Folgendes:

%Vor%

Der Operator * gibt Ihnen das Element, auf das der Iterator verweist, in Ihrem Fall ein Zeiger. Dann verwenden Sie -> , um diesen Zeiger zu dereferenzieren.

    
Reto Koradi 27.04.2014, 03:02
quelle
2

Sie müssen den Iterator dereferenzieren, um auf den Zeiger zuzugreifen:

%Vor%

Eine weitere Beobachtung ist die iter++ , die Sie im Profit von ++iter vermeiden sollten (siehe Ссылка ). Abhängig von dem Container möchten Sie möglicherweise auch vermeiden, end () bei jeder Iteration aufzurufen.

(Übrigens hilft es immer, ein minimal reproduzierbares Beispiel zu liefern, wie ich es gerade geschrieben habe, wenn Sie eine Frage stellen.)

    
Joky 27.04.2014 03:05
quelle
1

Den Iterator durch Iterer- & gt; gibt einen Zeiger auf ein Objekt vom Typ Karte, Sie müssen schreiben (* iter) - & gt; display_card ();

    
Rakib 27.04.2014 03:05
quelle

Tags und Links