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

Der Laufzeitvorteil wird mit dem Nachteil erkauft, daß es von nun an keine Sicherheit mehr dafür gibt, daß das übergebene Argument nicht verändert werden kann. Und damit steht man vor einem anderen Problem: da es keine Sicherheit gegen Änderungen im übergebenen Argument gibt, ist es auch nicht zulässig, diesen Operator mit konstanten Objekten als zweitem Argument aufzurufen:

  complex a, b;
  const complex c (1.2, 5.0);

  a+=b;    // in Ordnung
  a+=c;    // FEHLER, da zweites Argument eine Konstante ist!

Da man bei der gegebenen Operatorfunktion ohnehin nicht beabsichtigt, den zweiten Operanden zu verändern, würde man sich wünschen, auf irgendeine Art kenntlich machen zu können, daß dieser Wert von der Funktion nicht verändert wird. Dies geschieht in C++ über das Schlüsselwort const.