weiss jetzt gar nicht auswendig ob der kompiler das hier frisst
C++:
CMensch einMensch[4];
hmm mir fällt jetzt auch kein grund ein warum er es nicht tun sollte...
So wie ichs dir geschrieben hab ist das universaler, da du zum einem mit beliebig vielen objekten spielen kannst und das ggf auch noch im programmablauf ändern kannst... und du kannst halt beim erzeugen der objecte schon ein einfluss drauf haben in dem du in abhängigkeit vom objekt den eventeuell von dir definierten konstruktor aufrufst.... -- ...fleißig wie zwei Weißbrote
Windalf hat dir die Frage schon beantwortet: Siehe Post 049 -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
Fehlermeldung: Error E2303 Wurfel.cpp 40: Type name expected in function main() Error E2034 Wurfel.cpp 40: Cannot convert 'int *' to 'CMensch *' in function main() Error E2379 Wurfel.cpp 40: Statement missing ; in function main()
der code war wenn du es mit einem explizieten konstruktor machen willst, weil du dann ein array von CMensch-pointern brauchst um dann diese auf ein explietes objekt der klasse CMensch zeigen zu lassen...
sonst wenn du nur den defaultkonstruktor brauchst gehts auch z.b. so
C++:
int anzahl; //hier irgendwie in anzahl den gewünschten wert einlesen
CMensch *spieler; spieler=new CMensch[anzahl];
//mit dem array arbeiten
//am ende freigeben mittels delete nicht vergessen sonst müllst du den speicher zu delete [] spieler;
-- ...fleißig wie zwei WeißbroteDieser Post wurde am 26.03.2004 um 16:57 Uhr von Windalf editiert.
öhm von welchen variablen sprichts du denn jetzt gerade?...
C++:
int anzahl; cin >> anzahl; int eing_zahl[anzahl];
also wenn du das hier mit deinem compiler zu laufen bekommst hut ab... Ich hörte zwar davon das es compiler geben soll die das wohl fressen aber ich glaub da nicht dran....
an sonsten musst du auch an dieser stelle wieder speicher dynamisch allokieren und am ende wieder freigeben... da anzahl ja noch nicht zur compilzeit feststeht sondern erst später vom benutzer im programmablauf festgelegt wird, musst du denn speicher also wieder mit new allokieren...
C++:
int anzahl; cin >> anzahl; int *eing_zahl; eing_zahl= newint[anzahl];
// mit dem array eing_zahl arbeiten
//freigeben am ende nicht vergessen delete [] eing_zahl;
das das mit der allokierei ziemlich lästig ist kann man das ganze z.b. auch wieder in einer klasse kapseln und im konstruktor den speicher mit new allokieren und im destruktor dann wieder mit delete freigeben..... -- ...fleißig wie zwei Weißbrote