Diese Kapitel widme ich der nicht ganz unwichtigen Technik des Überladens von Stream-Operatoren. Ich will nur das Überladen von ostream. Alles andere (istream, ifstream, ofstream) funktioniert analog!
Diese Technik ist insofern interessant, als das man die Daten einer Klasse ja irgendwann auch wieder auf den Bilschirm bringen muss. Ausserdem haben wir ja in Kapitel 8 gesehen, dass auch Dateien mit den Stream-Operatoren behandelt werden und wir können dann diese Operatoren für eine Klasse so überladen, dass gleich alle Klassendaten komplett in eine Datei speichern können oder wieder herstellen können.
Zunächst ist anzumerken, dass diese Operatoren nicht Member einer Klasse sein können, weil sie Rückgabetypen haben, die die Klasse nicht auflösen kann (Man nehme das bitte so hin). Sie müssen also global deklariert sein. Deshalb muss der Operator innerhalb der Klasse als FRIEND deklariert sein, damit der Operator auf die Klassendaten zugreifen kann (siehe Kapitel 2.7).
Die Funktionsdeklaration lautet wie folgt:
ostream& operator |