Konto-Programm mit C++ (Objektorientiertes Programmieren)
-
Hallo
und danke für die Antwort.
Macht auf jeden Fall sinn aber manchmal sieht man es einfach nicht.
Nun bekomme ich einen neuen Fehler.
:\C++ übungen\aufgabe7\7aufgabe.cpp(41) : fatal error C1001: INTERNER COMPILER- FEHLER (Compiler-Datei "msc1.cpp", Zeile 1794)
Woran kann das liegen?
Hoffe auf neue hilfe
-
Also äääh bei deinem Programm sehe ich einige Fehler Oo
Zuerst mal der Header:
//#include <iostream.h> //veraltet #include<iostream> //Schon besser using namespace std;Dann versuchst du auf konto::kontostand zuzugreifen, was aber 1. privat und 2. nicht deiniert ist.
3.:
void konto::ausgabe() { cout << ausgabe() << endl; //WTF? }Hier versucht die Funktion sich selber auszugeben, aber sie ist void, das ergibt einen Fehler.
Dann hast du noch eine geschweifte Klammer falsch gesetzt:
void konto::auszahlen(float betrag) { if(kontostand > betrag) { kontostand = kontostand-betrag; } else { cout << "Leider ist die Auszahlung von" << betrag< <"EUR nicht möglich" << endl; } void konto::ausgabe() { cout << ausgabe() << endl; //WTF? } }Wird zu:
void konto::auszahlen(float betrag) { if(kontostand > betrag) { kontostand = kontostand-betrag; } else { cout << "Leider ist die Auszahlung von" << betrag< <"EUR nicht möglich" << endl; } } void konto::ausgabe() { cout << ausgabe() << endl; //WTF? }Und bitte bitte bitte gewöhne dir eine vernünftige Einrückung deines Codes an, das von dir da oben ist echt unmöglich.
-
die konto geschichten erinnern mich schwer ans erste Semester

-
Wirtschaftsinformatiker oder was?
-
ne Medien-Informatiker...
-
Hallo und danke für die Hilfe.
Hab es mit Eurer hilfe hinbekommen.
Ach ja es ist weder wirtschaft noch Medieninformatik.
Es ist ganz normaler Maschinenbau;-)Also Danke nochmal
Markus
-
Tip: für Geldbeträge grundsätzlich *niemals* float oder double verwenden. IMMER Fixkomma. int64_t mit Faktor 10000 ist ne gute Wahl.
-
find long besser, das gibs wenigstens in jedem compiler ^^
-
hustbaer schrieb:
Tip: für Geldbeträge grundsätzlich *niemals* float oder double verwenden. IMMER Fixkomma. int64_t mit Faktor 10000 ist ne gute Wahl.
Fixkomma ist nicht das entscheidende, sondern dass der Faktor eine Zehnerpotenz ist. "Normales" Fixkomma mit so und soviel binären Nachkommastellen bringt genau gar keinen Vorteil gegenüber float, weil du dezimale Nachkommastellen genauso nicht exakt darstellen kannst.
-
@Bashar: ich hab' ja auch geschrieben Faktor 10000. Ich dachte mir es sei logisch und nicht der Rede wert dass es eine Zehnerpotenz sein muss.
Was die theoretische Möglichkeit von dezimalem Gleitkomma angeht: für Geldbeträge sinnlos, da man immer eine min. Anzahl an Nachkommastellen garantieren muss. Und ich wüsste auch keine Anwendung wo man mehr als diese minimale Anzahl für irgendwas brauchen könnte. Und wenn ich eine minimale Anzahl an Nachkommastellen garantieren muss, und auch nie mehr als diese minimale Anzahl an Nachkommastellen brauchen kann... dann brauche ich eben auch kein Gleitkomma. Logisch, oder
