Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Mehrere Aufzählungstypen

Sovebämse / 6 Antworten / Flachansicht Nickles

Ich bin gerade dabei mir C++ anzueignen. Ich lese das Buch C++ in 21 Tagen.

Dort werden Aufzählungstypen kurz angesprochen. Es geht ja darum, dass man eigene Typen erstellen kann, womit dann Variablen definiert werden können.
Als Beispiel werden die Wochentage aufgeführt. Unter anderem kann man dann die Wochentage als Wort z.B. in if-Bedingungen verwenden. So kann ich also die Zahl 1 eingeben, welche dann z.B. dem Dienstag entspricht. Mit if (x = Dienstag) kann dann die Eingabe verglichen werden.

Nun meine Frage: Ich seh den Sinn darin nicht so ganz. Wenn ich nämlich mehrere verschiedene Aufzählungstypen erstelle, werden die jeweiligen Werte ja wieder ab 0 nummeriert.

Bsp.: Ich definiere den Typ Wochentag und den Typ Monat. Mache ich nun eine Abfrage und tippe die Zahl 0 ein, dann kann damit ja der Januar oder auch der Montag gemeint sein. Ein if-Vergleich würde dann bei beiden Möglichkeiten zutreffen, wäre somit also sinnlos.

Kann mir da jemand helfen, ob ich ev. einen Denkfehler mache bzw. ob man diese Aufzählungstypen einfach nicht so benutzt? Trotzdem bleibt mir schleierhaft, was ich dann mit den integer-Werten anfangen kann, wenn sie sich nicht mehr eindeutig zuordnen lassen.

Gruss und Dank
Thomas

bei Antwort benachrichtigen
higgl Sovebämse „Na, dann ist es nur ein wenig fraglich, warum im Buch genau ein solches Beispiel...“
Optionen
Na, dann ist es nur ein wenig fraglich, warum im Buch genau ein solches Beispiel gezeigt wird, wo der Benutzer eine Zahl eingeben muss für einen Tag und dann ein if-Vergleich kommt.

Darauf würde ich nicht allzuviel geben, die Autoren saugen sich die Beispiele ja auch irgendwie aus den Fingern. Dass da auch mal ein weniger Geglücktes dabei ist, passiert schon mal. Aber das kennst du ja als Lehrer bestimmt ;-)

Enums erlauben dir prinzipiell, eine Reihe von konstanten Variablen zu definieren, ohne zig Defines zu tätigen. Dass hier prinzipiell "Doppelnennungen" vorkommen können, liegt in der Natur der Sache. Falls das zum Problem wird, musst du das als Programmierer halt gezielt unterbinden (du kannst die Werte ja auch manuell zuweisen).
Neben der schöneren Lesbarkeit des Codes hast du weiter die Möglichkeit, den Wertebereich einer Variable einzugrenzen (d.h. du kannst einer enum-Variablen auch nur die definierten Werte zuweisen).


Never argue with an idiot. They drag you down to their level and then beat you with experience.
bei Antwort benachrichtigen