Variable verändert sich auf 'mystische Weise'
-
Bist du sicher dass dieser Konstruktur aufgerufen wird?
player(char* _name)
-
Der Konstruktor wird doch aufgerufen, wenn ein Objekt erschaffen wird, oder?
Ich erschaffe die Objekte in den Deklarationen der main.cppplayer tammo("Tammo"); player ariana("Ariana"), gregor("Gregor"), malark("Malark"), skott("Skott"), finmor("Finmor"), tresla("Tresla"), isabell("Isabell"), nympth("Nympth");@Taeli: Im ersten Code Ausschnitt unter Private.
-
EiGelbb schrieb:
@Taeli: Im ersten Code Ausschnitt unter Private.
Hm, ich seh immer noch keine Deklaration.

Hab den Code ausprobiert, und bis auf die Tatsachen, dass ich vor attack und defend noch ein int packen musste und noch ein } vergessen wurde, kriege ich 300 ausgegeben.
-
EiGelbb schrieb:
Der Konstruktor wird doch aufgerufen, wenn ein Objekt erschaffen wird, oder?
Richtig.
Also, nachdem ich die 10 Compilerfehler beseitigt habe, funktioniert es bei mir tadellos.
edit: Was vielleicht sein könnte, dass bei dir bool nicht 1 Byte groß ist und du dann ziemlich viele Speicherzugriffsverletzungen in der for-Schleife hast, vielleicht wird dort dann dein Variablenwert überschrieben.
-
sizeof(this->bStatusToAi)Damit überschreibst du dir den Stack, sofern sizeof(bool) != 1 ist...
Insgesamt ist das Klassendesign außerdem nicht gut (da du keine constness einsetzt, unnötigerweise public Member definierst und zu viele private Member hast - ordne diese und packe sie in entsprechende Sub-Klassen/Strukturen).
-
Danke! Gleich mal testen!
Wie teilt man so eine Klasse den sinnvoll auf? Die Lehrbücher vermitteln halt leider immer nur die Theorie und weniger die Praxis...
-
EiGelbb schrieb:
Danke! Gleich mal testen!
Wie teilt man so eine Klasse den sinnvoll auf? Die Lehrbücher vermitteln halt leider immer nur die Theorie und weniger die Praxis...
Was für ein Buch hast du denn?
-
Immer diese Fragen

NEIN, nicht C++ von A bis Z.
Irgendeins von Helmut Erlenköttel (Objektorientiertes Programmieren mit C++ oder so), C++ für Spieleprogrammierer und ein paar Online-Tuts...
Wo ich schonmal hier bin:
Wollte in die Grafikprogrammierung einsteigen, da ich nächstes Jahr Computervisualistik oder normal Informatik studieren werde (bzw will).
Welche API ist denn am meisten verwendet? Hatte schon kurz mit OpenGL angefangen, mich aber ziemlich dadurch entmutigen lassen, dass das seeehr veraltet ist und in der modernen Spieleprogrammierung nicht mehr verwendet wird. Und wenn ich nach DirctX suche, lese ich immer, dass es sehr schwer sei. Und lt. Amazon scheint es kein gescheites Buch über eines der Themen zu geben, da min. 10% der Rezensionen besagen, dass das Buch veraltet ist.Wie steige ich denn nun am besten ein? wxWidgets? OpenGL? DirectX?
Zukünftig würde nach meinem Studium gerne eine Ausbilung in einem Entwicklerstudium anfangen und mich halt der modernen 3D-Spieleprogrammierung widmen.
LG
-
€: Und wie kann ich das umgehen?
-
Eigelbb schrieb:
€: Und wie kann ich das umgehen?
Das mit dem STack überschreiben?
Du weißt doch, dass das Array 9 Elemente enthält, dann schreib doch auch 9 hin. Und wenn du das später evtl. ändern willst, mach dir doch ein #define oder (besser) const int NUM_ELEMS o.Ä, und verwende das statt der hartkodierten "9".
-
arghonaut schrieb:
Eigelbb schrieb:
€: Und wie kann ich das umgehen?
Das mit dem STack überschreiben?
Du weißt doch, dass das Array 9 Elemente enthält, dann schreib doch auch 9 hin. Und wenn du das später evtl. ändern willst, mach dir doch ein #define oder (besser) const int NUM_ELEMS o.Ä, und verwende das statt der hartkodierten "9".Oder einfach
sizeof(bStatusToAi)/sizeof(bStatusToAi[0])oder einfachstd::vectorbenutzen.