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 vonautomobil[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 , }