Initialisieren von Variablen

C++ unterscheidet zwischen Zuweisung und Initialisierung von Variablen. Leider hat hier C++ eine semantische Schwachstelle (die Schreibweise ist nicht eindeutig). Man muss also beide Möglichkeiten kennen, eine Variable zu initialisieren.

Initialisieren per Zuweisung

Die erste Möglichkeit eine Variable zu initialisieren ist ihr direkt bei der Definition einen Wert zuzuweisen, wie wir es aus C bereits kennen.

int variable = 4;              // wird initialisiert
float nochEineVariable = 1.2;  // wird initialisiert

Die Unterscheidung zwischen Initialisierung und Zuweisung ist in C nicht erforderlich, aber in C++ kann sich die Initialisierung, wie oben beschrieben und die Zuweisung deutlich unterscheiden.

int variable;                 // wird nicht initialisiert
float nochEineVariable;       // wird nicht initialisiert
 
variable = 4;                 // Zuweisung
nochEineVariable = 1.2;       // Zuweisung

Bei Primitiven spielt dies keine Rolle. Bei den zusammengesetzten Datentypen (z.B. Strukturen in C++, bzw. Klassen kann Zuweisung eines Wertes, statt einer Initialisierung jedoch deutliche Geschwindigkeitseinbußen mit sich bringen.

Initialisieren per Konstruktor

Instanzen von C++-Klassen werden mit einem Konstruktor erstellt. Das ist nicht weiter als eine Funktion, die viele Variablen initialisieren oder zuweisen kann. Im Falle von Primitiven wird lediglich der Wert in die Variable zugewiesen und fertig, denn mehr ist für die Konstruktion eines Primitivs nicht zu tun.

Um eine Variable zu konstruieren, schreibt man hinter den Variablennamen die Parameterliste für den Konstruktor. Primitive haben lediglich einen Konstruktor, der einen Wert als einziges Argument akzeptiert.

int variable(4);              // wird initialisiert
float nochEineVariable(1.2);  // wird initialisiert