Anfängerfrage zu enum und for
-
Hallo,
ich probiere mich derzeit an C++ macht bis jetzt Spass nur dieses enum macht mir zu schaffen.
Ich habe es so verstanden, dass ich einen Datentyp zur Aufzählung anlege um einen festen Index zu haben --> Woche = 7 Tage. Soweit so gut nur jetzt möchte ich das ganze mit einer for-Schleife durchlaufen nur irgendwie gibt mir Visual C++ 2008 express die Fehlermeldung "error C2675: Unärer Operator '++': 'main::tagTyp' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht" !?!?
Hier mein Code:
enum tagTyp {son, mon, die, mit, don, fre, sam}; tagTyp tag; const int woche = 7; char *tagname[woche] = {"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"}; for(tag = 0; tag <= 7 ; ++tag) { cout << tagname[tag] << endl; }Für Tips wäre ich Dankbar... viele Grüße Matze
-
Ja.
enum-Werte repräsentieren eigentlich nur eine genau festgelegte Menge an unterschiedlichen Zuständen, mit Zahlen hat das erst mal gar nichts zu tun. Deshalb werden auch arithmetische Operatoren nicht definiert.Dein Beispiel macht aus diesem Grund auch nicht sehr viel Sinn - auf
enum-Werte greift man normalerweise per Bezeichner (Enumerator) zu. Zum Beispiel so:std::cout << tagname[mon] << std::endl;Beim Durchiterieren wäre ein normaler integraler Typ wie
intwohl geeigneter. Was vielleicht noch zu bemerken ist, ist die Möglichkeit vonenum-Typen, implizit in integrale Typen konvertiert zu werden. Nur deshalb ist mein oberes Codestück überhaupt möglich.