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