Ausgabeoperator verstehen



  • Hi, ich hätte ne Frage und zwar versuch ich diese Anweisung zu verstehen.

    ostream &operator<<(ostream &os, const Person &p)
    {
    os << p.getName() << " " << p.getAge() << endl;
    return os;
    }

    und zwar verstehe ich vorallem die Fett geschriebene Anweisung in dem Codeschnipsel nicht.

    Vielleicht kann mir einer näher erläutern weshalb hier eine Referenz auf die operatorfunktion übergeben wird?



  • "operator<<" ist der Name der Funktion (sieht auf den ersten Blick komisch aus, ist aber so), "ostream&" ist der Rückgabetyp - du gibst an dieser Stelle üblicherweise den reingekommenen Stream zurück, um eine Operator-Verkettung wie in os << p.getName() << " " << p.getAge() << endl; zu ermöglichen.

    (und bei der Verteilung der Leerzeichen ist C++ relatic flexibel)



  • besser wäre es wenn man das so schreibt:

    [b]ostream&[/b] [i]operator<<[/i](ostream & ostr);
    

    da jeweils der fette bzw rekursive teil zusammen gehören...

    EDIT: cpp tags durch code tags ersetzt


Anmelden zum Antworten