Wo ist der Fehler?



  • Moin,

    in dem unten zu sehenden Code ist meiner Meinung nach die Ausgebemethode fehlerhaft. Das Programm lässt sich kompilieren und ausführen. Jedoch gibt es Murks aus.

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    class CKfz
    {
           private:
                   char modell[50];
                   char farbe[20];
                   short baujahr;
                   short tueren;
                   float leistung;
           public:
                  void eingeben()
                  {
                       cout<<"\nLeistung eingeben: ";
                       cin>>leistung;
                       cin.ignore();
                       cout<<"Modell eintippen: ";
                       cin.getline(modell, sizeof(modell));
                  }
                  void ausgeben();
                  inline float leistung_kw();
    };
    
    int main()
    {
        CKfz automobil[2];
        automobil[0].eingeben();
        automobil[1].ausgeben();
        cout<<"\n\nLeistung in kW: "<<automobil[1].leistung_kw();
        getch();
    }
    
    void CKfz::ausgeben()
        {
             cout<<"\n\nModell: "<<modell;
             cout<<"\nEs hat "<<leistung<<" PS";
        }
    
    inline float CKfz::leistung_kw()
        {
             return leistung*0,73549875;
        }
    


  • automobil[0].eingeben();
        automobil[1].ausgeben();
    

    Du lässt die Daten in automobil[0] eingeben, aber willst die von automobil[1] ausgeben. Nur 0 ist befüllt, 1 enthält uninitialisierte Werte.

    Gruß



  • 😡 Danke.



  • Noch etwas:

    inline float CKfz::leistung_kw()
        {
             return leistung*0,73549875; // <------------- . und nicht ,
        }
    

Anmelden zum Antworten