double
ein complex
erzeugt:
class complex {
// ...
complex(double r) { re = r; im = 0; }
};
Die Implementierung des Konstruktors wurde dabei gerade so vorgenommen, daß er der traditionellen Einbettung der reellen Zahlen in die komplexe Ebene entspricht, d.h. über die Zerlegung in einen reellen und einen imaginären Teil.
Wird nun an irgendeiner Stelle im Programm ein Objekt der complex
-Klasse
erwartet und steht dort statt eines complex
-Typs z.B. ein double
,
so wird stets der Konstruktor aufgerufen, da es mit diesem
möglich ist, aus dem angegebenen Wert bzw. Typ ein Objekt der Klasse
zu erzeugen.
Mit dem hier angegebenen Konstruktor können auch Integer-Werte in den Komplex-Typ
überführt werden; hierzu wird der int
-Typ zunächst via
impliziter Typumwandlung nach double
umgewandelt, anschließend
wird der Konstruktor aufgerufen.