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


  • Mod

    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...


  • Mod

    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.


  • Mod

    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.


  • Mod

    Hast du auch die Warnungen aktiviert?


Anmelden zum Antworten