Umwandlungs-Operator: Problematik der Mehrdeutgikeit (2/2)

Dieser kann nämlich auf zwei Arten interpretiert werden: Zum einen als

  x < Bruch(1000)

oder aber -- da eine Konvertierungsfunktion zum Typ double existiert --  als

  (double)x < (double)1000.

Dieses Beispiel sollte eines deutlich machen: Das bedeutet vor allem, daß es zu einem Konstruktor, der mit nur einem Argument aufrufbar ist, keine Konvertierungsfunktion geben sollte, die genau die entgegengesetzte Umwandlung vornimmt. Genauso sollte darauf geachtet werden, daß zwei verschiedene Klassen nicht eben Konstruktoren für Objekte der jeweils anderen Klasse definieren. Beachtet man diese kleinen Regeln, so kann die Mehrdeutigkeitsproblematik aufgelöst werden. Eine sicherere Lösung wird auf der folgenden Seite aufgezeigt.