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