Klassendefinition und Syntaxgraph

Willemers Informatik-Ecke

An dieser Stelle wird die Syntax einer Klassendefinition noch einmal zusammengefasst. Zur besseren Veranschaulichung wird dazu ein Syntaxgraph verwendet.

Hier steht im Buch die Abbildung "Syntaxgraph für die Klassendefinition" (grafclassdefinition)

Eine Klassendefinition beginnt immer mit dem Schlüsselwort class. Es folgt der Name der Klasse. Durch einen Doppelpunkt abgetrennt, kann die Basisklasse genannt werden, von der sich die Klasse ableitet. Es folgt die Liste der Basisklassen. Deren Syntax ist in Abbildung (grafbaseclasslist) dargestellt. Innerhalb der folgenden geschweiften Klammer folgen die Elemente der Klasse, die im Syntaxgraphen in Abbildung (grafclasselements) zu sehen sind.

Hier steht im Buch die Abbildung "Syntaxgraph für die Basisklassenliste" (grafbaseclasslist)

Wenn Sie die Basisklasse nennen, müssen Sie auch angeben, ob die Klasse public, private oder protected abgeleitet wird. Die Vorgabe ist private. Bei Mehrfachvererbung werden mehrere Klassen, durch Komma getrennt, aufgelistet. Jede dieser Klassen kann ein eigenes Vererbungsattribut haben. Das Vererbungsattribut kann auch weggelassen werden. Der Vorgabewert ist private. Zuletzt finden Sie in Abbildung (grafclasselements) den Syntaxgraph für die Elemente einer Klassendefinition.

Hier steht im Buch die Abbildung "Syntaxgraph für Klassenelemente" (grafclasselements)

Zugriff
Damit sind die Schlüsselwörter public, private und protected gemeint, die angeben, wie auf die folgenden Elemente zugegriffen werden kann. Wird keine Angabe zum Zugriff gemacht, ist die Vorgabe, dass alle Elemente privat sind.
Variablendefinition
Damit werden die Datenelemente einer Klasse festgelegt. Die Variablendefinitionen unterscheiden sich nicht von denen, die Sie beispielsweise von einer Funktion kennen. Lediglich die Initialisierung erfolgt nicht direkt bei der Definition, sondern im Konstruktor.
Funktionsdefinition
Wird die Funktion komplett innerhalb der Klassendefinition definiert, wird sie implizit als Inline-Funktion übersetzt.
Funktionsdeklaration
In den meisten Fällen werden Elementfunktionen innerhalb der Klassendefinition lediglich deklariert. Das bedeutet, dass die Funktion an anderer Stelle definiert wird.
Deklaration abstrakte Funktion
Im Unterschied zu einer normalen Funktionsdeklaration ist eine abstrakte Funktion virtuell und wird mit 0 initialisiert.


Informatik-Ecke Einstieg in C++ (C) Copyright 2005 Arnold Willemer