class sich im vector selbst registrieren lassen
-
Hi
Ich möchte im Konstruktor meiner Klasse die Klasse sich selbst in einem vector registrieren lassen.
ich habs mit dem pointer 'this' probiert , der gibt aber class uUnit *const zurück
Hier der code:class uUnit { short uDirection; short health; objects uType; position uPos; unit_weap uWeap; public: uUnit(); uUnit(short my_dir,short my_health,objects my_type,position my_pos,unit_weap my_weap); void uMove(direction direc); void uDoMeleeAttack(); void uRegMe(); void uTakeDamage(int damage); }; //Konstruktor=============================================================================================== uUnit::uUnit(short my_dir,short my_health,objects my_type,position my_pos,unit_weap my_weap) : uDirection(my_dir) , health(my_health) , uType(my_type) , uPos(my_pos) , uWeap(my_weap) {++unitcount;} uUnit::uUnit(){} //========================================================================================================== vector<uUnit> uVector; void uUnit::uDoMeleeAttack(){} void uUnit::uRegMe(){ uVector.push_back(this); }und hier die Fehlermeldung
error C2664: 'push_back' : Konvertierung des Parameters 1 von 'class uUnit *const ' in 'const class uUnit &' nicht moeglich Ursache: Konvertierung von 'class uUnit *const ' in 'const class uUnit' nicht moeglich Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutigHab ich da was beim vector falsch gemacht oder muss ich das ganze anders machen
-
Du hast einen Vektor mit Objekten definiert, versuchst aber einen Zeiger auf
ein solches Objekt einzufügen.
-
Danke
Hab jetzt n vector mit pointern gemacht und es funktioniert