Zusammengesetzte Datentypen

Aufzählungstypen

Beispielprogramm: AUFZ.CPP

Die Datei AUFZ.CPP gibt ein Beispiel für ein Programm, das eine Variable eines Aufzählungstypen verwendet. Der Aufzählungstyp wird in C++ ähnlich verwendet wie in ANSI-C, es gibt aber doch beträchtliche Unterschiede. Das Schlüsselwort enum muß bei der Definition einer Variablen dieses Typs nicht noch einmal gebraucht werden, man kann dies aber tun. Die Variable mit dem Namen Spielausgang wird als ein Aufzählungstyp definiert. Wie Du siehst ist enum bei der Definition nicht vonnöten. Es kann aber für Dich eindeutiger sein, das Schlüsselwort auch bei der Variablendefintion zu verwenden, so wie das in C verlangt wird.

Um zu zeigen, daß der Gebrauch von enum wirklich optional ist, steht das Schlüsselwort in Zeile 9, in Zeile 8 lassen wir es aber weg. Neben diesem trivialen Unterschied gibt es aber noch einen wichtigeren in der Verwendung von Aufzählungstypen zwischen C und C++. In C ist ein Aufzählungstyp einfach eine Variable vom Typ int, in C++ aber ein eigener Typ. Mit Variablen dieses Typs können keine mathematischen Operationen durchgeführt werden, es können ihnen auch keine ganzen Zahlen zugewiesen werden. Eine solche Variable kann auch nicht hinauf- oder heruntergezählt werden wie in C. In unserem Beispielprogramm verwenden wir eine ganze Zahl als Index der for-Schleife, da wir diese inkrementieren können. Dann weisen wir der Aufzählungsvariablen den Wert dieses Indizes (Zaehler) mithilfe einer Typenumwandlung zu. Die Typenumwandlung ist unbedingt erforderlich, oder der Compiler wird einen Fehler melden. Die mathematischen Operationen sowie die Operatoren zum In- und Dekerementieren können für den Aufzählungstypen definiert werden, sie sind aber nicht automatisch verfügbar. Dem Überladen von Operatoren werden wir uns später widmen, dann wird auch der letzte Satz etwas mehr Sinn machen.

Wenn Du mit einem älteren Compiler arbeitest, kannst Du möglicherweise die Aufzählungsvariable Spielausgang als Schleifenindex verwenden, Dein Code ist dann aber nicht mit dem eines neueren Compilers kompatibel.

Den Rest des Programmes verstehst Du sicherlich. Nachdem Du Dir alles genau angeschaut hast, kompiliere das Beispielprogramm und führe es aus.

(weiter...)

[ Form ]