"<<"Überladungsfrage



  • Holla,

    ich habe mal eine frage zur Überladung von :

    std::ostream &operator<<(std::ostream &ostr, const Fraction &f);
    

    Meine Frage ist, warum dort soviel mit REferenzen gearbeitet wird, und besonders was bedeutet die Referenz vor dem operator? Wäre um eine Aufklärung echt dankebar:)



  • Du arbeitest auf einem bestimmten Stream, und NUR auf dem Stream. Wenn Du keine Referenzen benutzen würdest, würde eine Kopie des Streams erzeugt werden (was nicht geht, da der Copy-Ctor von Streams private ist). Du gibtst also einen Stream rein, manipulierst ihn, und gibst dann genau diesen manipulierten Stream wieder zurück (daher das & vor dem Operator).



  • ahh alles klar nur warum muss vor das operator noch & ??



  • Damit der Stream auch als Referenz wieder zurückgegeben wird (also genau das Stream-Objekt, das reinging und keine Kopie davon).


Anmelden zum Antworten