====== 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 [[c:var:def|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 [[c:type:primitive|Primitiven]] spielt dies keine Rolle. Bei den zusammengesetzten Datentypen (z.B. [[c:type:struct|Strukturen]] in C++, bzw. [[cpp:class:start|Klassen]] kann Zuweisung eines Wertes, statt einer Initialisierung jedoch deutliche Geschwindigkeitseinbußen mit sich bringen.
===== Initialisieren per Konstruktor =====
Instanzen von C++-[[cpp:class:start|Klassen]] werden mit einem [[cpp:class:construct|Konstruktor]] erstellt. Das ist nicht weiter als eine Funktion, die viele Variablen initialisieren oder zuweisen kann. Im Falle von [[c:type:primitive|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