Objekte zu einer Klasse durch Einlesen hinzufügen



  • 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 ich balance = xbalance; ab.


Anmelden zum Antworten