error C2061/C1903 bei Template in Visual C++ 2010
-
Hallo,
Ich versuche mich momentan an einen kleinen Spiel in der Konsole.
Es sollen 2 Figuren sich gegenseitig angreifen, bis eine Zerstört wird.
Wenn ich meinen Quelltext kompilimieren möchte, kommen folgende Fehlermeldungen:1>------ Erstellen gestartet: Projekt: SchrottAndMore, Konfiguration: Debug Win32 ------ 1> Main.cpp 1>c:\XXX\main.cpp(57): error C2061: Syntaxfehler: Bezeichner 'ANGREIFER' 1>c:\XXX\main.cpp(57): fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen. ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Der Quelltextausschnitt:
(Entschuldigung für die deutschen Variabelnamen, aber so behalte ich besser den Überblick )#include <iostream> enum Magiearten {FEUER, WASSER, ERDE, LUFT, STAHL, LICHT = 10, FINSTERNIS}; class Held{ private: int Leben; int MaxLeben; int Attacke; int Angriffe; Magiearten Magie; public: //Standart - Konstruktor Held(int leben, int attacke, Magiearten magie): Leben(leben),Attacke(attacke), Angriffe(0), MaxLeben(Leben), Magie(magie){} //Memberfunktionen, um Leben zu verändern bzw. auszulesen const int get_Leben(){ return Leben; } void set_Leben(int sLeben){ if(Leben +=sLeben > MaxLeben) Leben = MaxLeben; else{ Leben +=sLeben; } } //Memberfunktionen, um Attacke zu verändern bzw. auszulesen const int get_Attacke(){ return Attacke; } void set_Attacke(int sAttacke){ Attacke +=sAttacke; } //Memberfunktionen, um Angriff zu verändern bzw. auszulesen const int get_Angriffe(){ return Angriffe; } void set_Angriffe(int sAngriffe){ ++Angriffe; if(Angriffe%10 == 0) ++Attacke; } //Memberfunktionen, um Magie zu verändern bzw. auszulesen const int get_Magie(){ return Magie; } void set_Magie(Magiearten sMagie){ Magie = sMagie; } }; //1. Attacke(Typ Feuer): Schlagen template<ANGREIFER, VERTEIDIGER>int Schlagen(ANGREIFER angreifer, VERTEIDIGER verteidiger){ int temp = (angreifer.get_Attacke()/10); if(angreifer.get_Magie == FEUER) temp *=4; if(verteidiger.get_Magie() == WASSER) temp = *=0.5; verteidiger.set_Leben((-1)*temp); return temp; } int main(){ Held h1(100, 20, FEUER); Held h2(100, 20, WASSER); while(h1.get_Leben() != 0 && h2.get_Leben() != 0){ if(h2.get_Leben()!= 0)Schlagen(h1, h2); if(h1.get_Leben()!= 0)Schlagen(h2, h1); std::cout<< "Held 1 hat "<< h1.get_Leben() <<"/100 Leben"<<std::endl; std::cout<< "Held 2 hat "<< h2.get_Leben() <<"/100 Leben"<<std::endl; } }
weiß jemand, was ich falsch mache?
MFG
-
Short.ask(); schrieb:
weiß jemand, was ich falsch mache?
Was willst du denn in Zeile 57 machen, und wieso machst du es nicht?
-
typename
?
-
Swordfish schrieb:
typename ?
Mann, un ich kuck mindestens ne halbe stunde auf den Code und seh diesen mini - Fehler einfach nicht!!!
Vielen Dank