Ausgabe-Operationen: Der Ausgabe-Operator << (2/2)

Das Beispiel verdeutlicht -- trotz seiner Kürze -- einige grundlegende Aspekte des Ausgabe-Operators: Der Operator wird dabei -- wie man es auch erwarten oder zumindest erhoffen würde -- von links nach rechts ausgewertet und hat dabei eine so geringe Priorität, daß arithmetische Ausdrücke ohne Klammern geschrieben werden können. Zudem suggeriert die Pfeilrichtung von <<, daß etwas in Richtung der Pfeile geschrieben werden soll, was die Lesbarkeit des Codes maßgeblich erhöht.

Vielleicht ist es dem einen oder anderen schon aufgefallen: den Operator << haben wir bereits in Kapitel 3 als bitweisen Shift-Operator kennengelernt. Wie kann das gehen?
Nun, wir haben auch bereits erfahren, daß man Operatoren für verschiedene Funktionalitäten überladen kann. Für die bequeme Ausgabe mittels eines Operators muß ein ebensolcher (also bereits vorhandener) Operator überladen werden. Das Definieren eines neuen Operators ist ja bekanntlich nicht möglich (vgl. Kapitel 14, Operatoren). Man hat sich an dieser Stelle für den Shift-Operator entschieden, da dessen Einsatz als Ausgabeoperator wohl zu den wenigsten Konflikten führt.
Soll innerhalb einer Ausgabeanweisung eine Bit-Shiftoperation durchgeführt werden, so kann durch entsprechende Klammerung die Eindeutigkeit wiederhergestellt werden.