Defintion und Deklaration

Definition und Deklaration sind zwei verschiedene Dinge in C++, wie übrigens auch in ANSI-C. Wir wollen nun eindeutig festlegen, was diese beiden Begriffe in C++ bedeuten. Eine Deklaration informiert den Compiler über die Eigenschaften etwa von einem Typen oder einer Funktion, definiert aber keinen Code, der im ausführbaren Programm verwendet wird. Eine Definition andererseits, definiert etwas, das im ausführbaren Programm tatsächlich existiert, etwa eine Variable oder Code-Zeilen. Jede Einheit im Programm muß genau eine Definition haben. Kurz, eine Deklaration führt einen Namen im Programm ein und eine Definition Code und dieser braucht Platz im Speicher.

Wenn wir ein struct deklarieren, deklarieren wir im Grunde nur ein Muster, nach dem der Compiler später im Programm, wenn wir dann Variablen dieses Typs deklarieren, diese speichern soll. Definieren wir aber Variablen dieses Typs, deklarieren wir die Namen dieser Variablen und definieren einen Platz im Speicher für ihre Werte. Deshalb führen wir beim Definieren einer Variablen eigentlich zwei Vorgänge aus: wir deklarieren sie und definieren sie gleichzeitig.

In C sind mehrere Definitionen einer Variable erlaubt, solange die Definition dieselben sind und es sich um ein und dieselbe Variable handelt. C++ verbietet eine solche Vorgangsweise aus einem guten Grund, wie wir später sehen werden.

Wir werden uns im Laufe dieser Einführung noch sehr oft auf diese Definitionen beziehen und auf sie eingehen, sollte also jetzt noch etwas unklar sein, wird das später klarer werden.

(weiter...)