Problem mit massen-klassen
-
wenn ich eine klasse für den spieler z.b. habe kann ich so 2 speiler nutzen:
class C_Spieler { public: int Team; int Punkte; }; C_Spieler sp1; C_Spieler sp2; sp1.Team=1; sp2.Team=2; cout << sp1.Team; cout << sp2.Team;wenn ich nun aber z.b. 200 einheiten haben will, würd ich das so machen:
class C_Einheiten { public: int Angriff; int Verteidigung; }; for(int t; t<200;t++){ C_Einheiten einheit[t]; einheit[t].Angriff=100; einheit[t].Verteidigung=150; }; for(int z; z<200;z++){ cout << einheit[z].Verteidigung; // <-- hier meldet er einen fehler: // 'einheit' undeclared (first use this funktion) };[url]
-
Du musst das Array außerhalb der Schleife erstellen.
class C_Einheiten { public: int Angriff; int Verteidigung; }; C_Einheiten einheit[200]; for(int t; t<200;t++){ einheit[t].Angriff=100; einheit[t].Verteidigung=150; }; for(int z; z<200;z++){ cout << einheit[z].Verteidigung; };
-
klasse das funktioniert.
nemen wir an ich habe jetzt 200 einheiten erstellt
class C_Einheiten anzahl=200; { public: int Angriff; int Verteidigung; }; C_Einheiten einheit[anzahl]; for(int t; t<anzahl;t++){ einheit[t].Angriff=100; einheit[t].Verteidigung=150; }; for(int z; z<anzahl;z++){ cout << einheit[z].Verteidigung; };wie kann ich später irgendwann weiter erstellen (also die einheiten auf z.b. 250 aufstocken)
mitanzahl=250; C_Einheiten einheit[anzahl];gehts nicht weil ich ja schon einheit 1-200 erstellt habe
-
Dafür benötigst du einen dynamischen Container. Dafür gibts in C++ entsprechende Klassen, in deinem Fall std::vector. Du solltest dich am besten so langsam an die Standard-Library von C++ einarbeiten, die kann dir viel Arbeit erleichtern.
CStoll hat auch einen Artikel dazu geschrieben:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143816.htmlBei Fragen und Probs zum vector kannst du unter dem Artikel deinen Frage stellen.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum Andere GUIs - Qt, GTK+, wxWidgets in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.