Wo ist der Fehler?
-
1. Zeile 12: Rückgabewert void ist falsch
2. Zeile 16: Rückgabewert void ist falschdie voids sind richtig!
die floats sind falsch!
-
#include <iostream> using namespace std ; class KONTO { private: float KONTOSTAND ; public: KONTO() {} // Stk KONTO(int val) : KONTOSTAND(val) {} // 2. Konstruktor, evtl. nützlich void WERT_AENDERUNG(float) ; // void, hier wird nur was berechnet void WERT_AENDERUNG(float, float); // s.o float KONTOSTAND_LESEN(void) ; } ; void KONTO::WERT_AENDERUNG(float EINGABE) { KONTOSTAND=KONTOSTAND + EINGABE ; } void KONTO:: WERT_AENDERUNG (float EINGABE, float Faktor) { KONTOSTAND=KONTOSTAND + (EINGABE * Faktor), } float KONTO::KONTOSTAND_LESEN(void) {return(KONTOSTAND);} int main() { KONTO TESTKONTO ; // Dann wohl doch ohne '()' int ALTERNATIVE=0 ; // Alternative ? Wohl eher Auswahl, aber zieml. egal float WERT=0, Faktor=0 ; cout << "K O N T O V E R W A L T U N G \n" ; do { cout << "1 = KONTOSTAND AENDERN ohne Faktor\n" ; cout << "2 = KONTOSTAND AENDERN mit Faktor\n" ; cout << "3 = KONTOSTAND LESEN\n" ; cout << "0 = Ende der Aktion\n\n" ; cout << "Ihre Wahl : " ; cin >> ALTERNATIVE ; /* Wo war hier deine tatsächliche Berechnung ? Außerdem sind die Fragen irreführend Der Benutzer gibt bei Funktion 1 schließlich ein zu addierenden Wert nicht einen neuen für den Kontostand ein Außerdem sehe ich keine breaks bei dir, -> Alles wird ausgeführt */ switch(ALTERNATIVE) { case 0 : cout << "Sie haben 0 eingegeben ! Das Programm wird beendet " << endl; break; case 1: cout << "Zu addierender WERT : " ; cin>> WERT ; TESTKONTO.WERT_AENDERUNG(WERT); break; case 2: //Berechnung mit Faktor cout << "Zu addierender WERT : " ; cin >> WERT ; cout << "Mit welchem Faktor : " ; cin >> Faktor ; TESTKONTO.WERT_AENDERUNG(WERT, Faktor); break; case 3: cout << "Aktueller WERT:" ; cout << TESTKONTO.KONTOSTAND_LESEN() << "\n\n" ; break; default : cout << " Bitte geben Sie entweder 0,1,2 oder 3 ein ! " << endl; } } while(ALTERNATIVE) ; cin.ignore(); // Buffer leeren cin.get(); // system("Pause"); lädt vielzuviel Ressourcen return 0; // Nicht unbedingt nötig, sollte aber trotzdem dabei stehen } // Ja, da war eine zuviel
-
erinnert mich an cobol

gewöhn dir an, die Methoden nicht in Blockbuchstaben zu schreiben.
Camel-case!
-
asdffdsa schrieb:
erinnert mich an cobol

gewöhn dir an, die Methoden nicht in Blockbuchstaben zu schreiben.
Camel-case!Das stimmt, find ich auch hässich, aber wenn er so gern coded dann soll erst tun .
-
wxSkip schrieb:
In Zeile 25 befindet sich eine illegale Funktionsdeklaration. (Klammern weg)
KONTO TESTKONTO() ;
wird zu
KONTO TESTKONTO ;
-
wxSkip schrieb:
wxSkip schrieb:
In Zeile 25 befindet sich eine illegale Funktionsdeklaration. (Klammern weg)
KONTO TESTKONTO() ;
wird zu
KONTO TESTKONTO ;Das trifft nicht auf mein Code zu, oder ? Schließlich habe ich ein Konstruktor mit void-Parameter.
Oder wieso erwähnst du das nochmal?
-
Felixxx schrieb:
wxSkip schrieb:
wxSkip schrieb:
In Zeile 25 befindet sich eine illegale Funktionsdeklaration. (Klammern weg)
KONTO TESTKONTO() ;
wird zu
KONTO TESTKONTO ;Das trifft nicht auf mein Code zu, oder ? Schließlich habe ich ein Konstruktor mit void-Parameter.
Oder wieso erwähnst du das nochmal?Ich erwähne es nochmal, weil du es noch nicht beseitigt hast
.
Wenn du einen void-Konstruktor hast, darfst du die Klammern nicht hinschreiben. Das sollte dir dein Compiler aber eigentlich selbst sagen.
-
wxSkip schrieb:
Felixxx schrieb:
wxSkip schrieb:
wxSkip schrieb:
In Zeile 25 befindet sich eine illegale Funktionsdeklaration. (Klammern weg)
KONTO TESTKONTO() ;
wird zu
KONTO TESTKONTO ;Das trifft nicht auf mein Code zu, oder ? Schließlich habe ich ein Konstruktor mit void-Parameter.
Oder wieso erwähnst du das nochmal?Ich erwähne es nochmal, weil du es noch nicht beseitigt hast
.
Wenn du einen void-Konstruktor hast, darfst du die Klammern nicht hinschreiben. Das sollte dir dein Compiler aber eigentlich selbst sagen.Wh00t ? Ich habe das nicht durch den compiler gejagt. Dachte echt nicht dass das so ist, aber wenn Du das sagst glaube ich das mal. Finde ich eigentlich komisch, wieso ist das so ?
-
Stell dir mal vor, du deklarierst diese Variable so global statt lokal... als was wird der Compiler das wohl interpretieren?
-
Lol, dumme Frage, macht natürlich Sinn.
class A {
//Whatever
}A a() -> Funktion.