Die Bewegungsfunktionen erwarten immer ein Objekt vom Typ runaround
.
In unserem Fall will man natürlich immer dasselbe Objekt bearbeiten. Wir
ändern die Klassendeklaration derart um, daß die Methoden eine Referenz auf
runaround
zurückliefern. In der Definition geben wir dann eine
Referenz auf *this
zurück und die Wanderung vereinfacht sich dann
beträchtlich.
void main()
mein_laeufer.oben().unten().rechts().unten().links();
class runaround
{
public:
runaround& oben( ..... return *this;);
runaround& unten( ..... return *this;);
runaround& rechts( ..... return *this;);
runaround& links( ..... return *this);
};
{
runaround mein_laeufer;
}
Bei der Überladung von Operatorten wird der this
-Pointer benötigt
um eine Referenz auf das eigene Objekt zurückzugeben. Wegen eines Beispieles
sehe man dort nach.