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.
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.
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