Konstruktoren zur Typumwandlung (1/2)

Ein weiterer Spezialfall der Konstruktoren sind Konstruktoren zur Typumwandlung, d.h. solche, die einen Parameter eines Typs aufnehmen, um damit die zu erzeugende Instanz des Objektes zu initialisieren. Auf diese Art kann eine Instanz des Parametertyps in eine Instanz des Objektes umgewandelt werden, zu der der Konstruktor gehört. Dies kann z.B. bei einer Klasse für komplexe Zahlen geschehen, um reelle Zahlen umzuwandeln:

  class complex
  { 
    private: 
      float real, imag; 
    public: 
      complex(float r) { real=r; imag=0; }; 
  }; //class complex

Dieses Beispiel hätte allerdings noch das Problem, daß kein Standardkonstruktor mehr vorhanden wäre, der aber sicherlich wünschenswert wäre. Eine einfache Möglichkeit diesen und einen weiteren, der sowohl Real- als auch Imaginäranteil einer komplexen Zahl aufnimmt, zu erzeugen, erhält man durch:

  complex(float r=0, float i=0) { real=r; imag=i; }

Solche Standardparameter, wie in Kapitel Funktionen beschrieben , können den Sourcecode stark verkleinern, man sollte dabei aber aufpassen, daß die Übersichtlichkeit nicht leidet.