Refrenzen und Konstanten: Referenzen als Parameter (1/2)

Mit Hilfe von Referenzen wird es nun möglich, daß Anlegen von unnötigen lokalen Kopien zu vermeiden:

  complex& complex::operator+(complex& c)
  {
  ...            // Anweisungen genau wie oben
  };

Werden Parameter als Referenzen deklariert (wie im Beispiel geschehen), so werden diese bei einem Funktionsaufruf mit den übergebenen Argumenten initialisiert. Es wird also keine Kopie von dem übergebenen Objekt angelegt, sondern lediglich ein zweiter Name vergeben.
Analoges gilt für die Deklaration des Rückgabe-Objektes, auch hier wird nun keine Kopie mehr erzeugt.

Allerdings sollte man eines beachten: die Verwendung der Referenz ist nun gleichbedeutend mit der Verwendung des ursprünglichen Objektes, d.h. insbesondere auch, daß alle Änderungen an der Referenz auch unser ursprüngliches Objekt betreffen! Jede Änderung, die durch obige Funktion am Parameter durchgeführt wird, wird auch am Argument, das übergeben wurde, durchgeführt. Dieses Prinzip wird auch mit dem Schlagwort "call-by-reference" belegt.