Aufzählungstypen funktionieren, wenn Sie im voraus eine begrenzte (normalerweise kurze) Liste von Werten wissen, die ein Datentyp annehen kann. Hier folgt ein Beispielprogramm, DAYENUM, welches den Aufzählungstyp für die Wochentage verwendet:
Aufzählend meint, daß alle Werte aufgelistet sind. Dies ist nicht wie bei der Festlegung eines int-Typs, beispielsweise, welcher sozusagen in einem Bereich möglicher Werte angegeben wird. In einem enum-Typ muß man jedem möglichen Wert einen spezielen Namen geben.// dayenum.cpp // Veranschaulicht enum-Typen #include <iostream.h> // Festlegen des enum-Typs enum days_of_week { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; void main() { days_of_week day1, day2; // Variable definieren vom Typ days_of_week day1 = Mon; // Werte an die day2 = Die; // Variablen gegen int diff = day2 - day1; // Ganzzahlarithmetik ist möglich cout << "Tagesdifferenz = " << diff << endl; if (day1 < day2) cout << "Tag 1 kommt vor Tag2\n"; }
Hier ist die ausgabe des Programms:
Tagesdifferenz = 3
Tag 1 kommt vor Tag 2
Es folgt das Programmlisting für CARDS:
// cards.cpp // Veranschaulicht den Gebrauch von Srukturen bei der Nachbildung von Spielkarten #include <iostream.h> const int kreuz = 0; const int karo = 1; const int herz = 2; const int pik = 3; const int bube = 11; const int dame = 12; const int koenig = 13; const int as = 14; struct card { int number; // 2 bis 10, bube, dame, koenig, as int suit: // kreuz, karo, herz, pik }; void main() { card temp, chosen, prize; // Karten definieren int position; card card1 = { 7, kreuz }; // Initialisieren von card1 cout << "Karte 1 ist die Kreuz 7\n"; card card2 = { bube, herz }; // Initialisieren von card2 cout << "Karte 2 ist die Herzbube\n"; card card3 = { as, pik }; // Initialisieren von card3 cout << "Karte 3 ist das Pik-As\n"; prize = card3; // Kopieren der Karte, um sie im Gedächnis zu behalten cout << "Ich tausche Karte 1 und Karte 3\n"; temp = card3; card3 = card1; card1 = temp; cout << "Ich tausche Karte 2 und Karte 3\n"; temp = card3; card3 = card2; card2 = temp; cout << "Ich tausche Karte 1 und Karte 2\n"; temp = card2; card2 = card1; card1 = temp; cout << "Nun, wo befindet sich (1, 2 oder 3) das Pik-As? "; cin >> position; switch(position) { case 1: chosen = card1; break; case 2: chosen = card2; break; case 3: chosen = card3; break; } if(chosen.number == prize.number && chosen.suit == prize.suit) // Verkleicht Karten cout << "DAs ist richtig! Sie haben gewonnen!\n"; else cout << "Schade. Sie haben verloren.\n"; }