Objekte zu einer Klasse durch Einlesen hinzufügen
-
@schlangenmensch @Swordfish Muss es "xbalance" statt "balance" sein?
-
@xlogiaa Das wäre ein guter Anfang aber noch nicht genug.
-
@swordfish Okay jetzt kann ich dir leider nicht mehr folgen Das Programm funktioniert jetzt so wie es soll. Könntest du einfach sagen was du meinst? Muss noch mit Vererbung weiter machen
-
void setBalance(float xbalance) { if(xbalance < -1000){ cout << "Limit ueberzogen!\n"; return; // dadurch wird das else überflüssig } balance = xbalance; }
@xlogiaa sagte in Objekte zu einer Klasse durch Einlesen hinzufügen:
Muss noch mit Vererbung weiter machen
-
@xlogiaa sagte in Objekte zu einer Klasse durch Einlesen hinzufügen:
Okay jetzt kann ich dir leider nicht mehr folgen Das Programm funktioniert jetzt so wie es soll.
Da würde ich nicht drauf wetten.
Wie findest du das?
void setBalance( float xbalance ) { if( xbalance < -1000 ) { cout << "Limit ueberzogen!" << endl; return; } balance = xbalance; }
-
@out @Swordfish Aber falsch war es dann ja nicht wirklich, oder? Einfach nur überflüssig. Und doch das Programm hat genau so funktioniert wie jetzt nachdem ich es angepasst habe.
-
@xlogiaa sagte in Objekte zu einer Klasse durch Einlesen hinzufügen:
@out @Swordfish Aber falsch war es dann ja nicht wirklich, oder? Einfach nur überflüssig. Und doch das Programm hat genau so funktioniert wie jetzt nachdem ich es angepasst habe.
Na doch, du hast das Gegenteil programmiert von dem, was du wolltest. Wie testest du denn dein Programm?
-
Vergleiche mal
if(balance >= -1000) // mit oder ohne 'x' davor ... ziemlich egal
mit
if( xbalance < -1000 )
-
@out @Swordfish Okay das war jetzt mein Fehler, als ich mit xbalance herumprobiert hatte habe ich das Zeichen auch umgedreht, also war wirklich schon richtig nur hatte ich das nicht erwähnt, sorry! :smiling_face_with_open_mouth_cold_sweat:
-
Was soll denn eine "xBalance" sein?
-
@tggc Das macht man ja so mit get und set Methoden.
-
Ich finde dieses setBalance etwas merkwürdig. Auf ein Konto zahlt man ein, hebt ab und lässt sich den Kontostand anzeigen. Ich hätte Angst, wenn jemand meinen Kontostand abfragt, etwas drauf- oder runterrechnet und dann den Kontostand als Ganzes setzt. Ich würde das so umsetzen, falls die Aufgabenstellung das erlaubt:
class Account { double Balance_; // ja, ich weiß, ungenau. Dient nur zur Übung public: Account() : Balance_( 0.0 ) { } double balance() const { return Balance_; } void deposit( double Amount ) { set_balance( balance() + Amount ); } bool withdraw( double Amount ) { return set_balance( balance() - Amount ); } private: bool set_balance( double Balance ) { if( Balance > -1000 ) { Balance_ = Balance; return true; } return false; } };
@TGGC
Ich hoffe, du hast gut aufgepasst und verstanden, dass man das bei get- und set Methoden so macht.Edit:
Implementierung per set_balance(). Benutzt deposit()/withdraw()/balance() als öffentliches Interface und set_balance im Sinne der (vermuteten) Aufgabenstellung.
-
@docshoe sagte in Objekte zu einer Klasse durch Einlesen hinzufügen:
Ich hoffe, du hast gut aufgepasst und verstanden, dass man das bei get- und set Methoden so macht.
Naja, es gibt halt verschiedene Konventionen.
Ich finde zum Beispiel den _ für Membervariablen hässlich. Gut, das "x" als Präfix für Parameter habe ich noch gar nicht gesehen, dafür aber oft ein "a", insbesondere im Delphi-Umfeld (für "Argument"). Das "a" für Argumente finde ich weniger schlimm als ein "f" oder "_" für Member. Aber keine Ahnung, wie hier die vorherrschende Meinung ist. Oder bevorzugt ihr
this->balance = balance
? Letzteres finde ich auch in Ordnung. Jedenfalls lehne ichbalance = xbalance;
ab.