Array mit Objektpointern
-
Hi!
Habe ein Problem. Ich soll ein Array anlegen, das Zeiger auf Klassenobjekte enthält und dann die Objektdaten ausgeben.
Folgender Quellcode:
void vAufgabe_1_deb() { Fahrzeug* test1; test1 = new Fahrzeug("VW Polo",180); Fahrzeug* test2; test2 = new Fahrzeug("Skoda Fabia",200); Fahrzeug* test3; test3 = new Fahrzeug("Porsche Panamera",300); Fahrzeug* test4; test4 = new Fahrzeug("Volvo XC 90",220); Fahrzeug* feld_name[3]; feld_name[0] = test1; feld_name[1] = test2; feld_name[2] = test3; feld_name[3] = test4; for(int i = 0; i < 4; i++) { feld_name[i]->vAusgabe(); } delete test1; delete test2; delete test3; delete test4; }
und noch die Ausgabefunktion der Klassse:
void Fahrzeug::vAusgabe() { resetiosflags(ios::left); cout << setiosflags(ios::left) << setw(4) << p_iID << setw(12) << p_sName << setw(6) << ":" << setw(10) << fixed << setprecision(2) << p_dMaxGeschwindigkeit << setw(10) << setprecision(2) << p_dGesamtStrecke << endl; //formatierte Ausgabe der Werte cout.unsetf(ios_base::floatfield); // fixed reset }
Die Konsole bleibt leer, ich finde den Fehler leider nicht, die Ausgabe funktioniert in anderen Tests.
Grüße, Krachi
-
Fahrzeug* feld_name[3]; feld_name[0] = test1; feld_name[1] = test2; feld_name[2] = test3; feld_name[3] = test4;
Du definierst ein Array mit drei Elementen, greifst aber auf vier davon zu?
-
Arcoth schrieb:
Fahrzeug* feld_name[3]; feld_name[0] = test1; feld_name[1] = test2; feld_name[2] = test3; feld_name[3] = test4;
Du definierst ein Array mit drei Elementen, greifst aber auf vier davon zu?
Ist mir aufgefallen, behebt leider meinen Fehler trotzdem nicht.
-
Okay ganz dummer Fehler, habe die Klammern hinterm Funktionsaufruf in der main vergessen...
*schäm*
Tut mir leid, saß da gerade 30 Minuten und hab es nicht gesehen...
-
Krachi schrieb:
Okay ganz dummer Fehler, habe die Klammern hinterm Funktionsaufruf in der main vergessen...
Damit hast du offenbar nicht den Code kopiert sondern abgetippt. Lies dir bitte das hier durch.
-
Arcoth schrieb:
Krachi schrieb:
Okay ganz dummer Fehler, habe die Klammern hinterm Funktionsaufruf in der main vergessen...
Damit hast du offenbar nicht den Code kopiert sondern abgetippt. Lies dir bitte das hier durch.
Main ist im gezeigten Code nicht vorhanden.
-
Main ist im gezeigten Code nicht vorhanden.
Ahh, jetzt verstehe ich. Er hat wohl
int main() { vAufgabe_1_deb; }
geschrieben und nicht auf die Warnung gehört.
-
Arcoth schrieb:
Main ist im gezeigten Code nicht vorhanden.
Ahh, jetzt verstehe ich. Er hat wohl
int main() { vAufgabe_1_deb; }
geschrieben und nicht auf die Warnung gehört.
Lustigerweise gibt mir Visual Studio nicht mal eine Warnung...
Ziemlich doof.
-
Hast du auch die Warnungen aktiviert?