Zugriff auf enum
-
Hallo,
Enum e = {foo}; int i = e::foo;
Das ergibt bei mir den folgenden Fehler
error: ‘e’ is not a class or namespace.
Wie kann ich auf den Wert des Enums zugreifen? Laut stackoverflow funktioniert das doch?!
http://stackoverflow.com/questions/10090949/accessing-to-enum-values-by-in-c
-
nein, da steht etwas komplett anderes
-
nö, guck dir mal die erste Antwort an
-
Enum e = {foo};
Das ist keine Enumerations-Deklaration. Hier sind gleich zwei Dinge falsch.
Der enum-key wird klein geschrieben, alsoenum
. Das merkst du auch, wenn du in deiner IDE Syntaxhilighting aktivierst.
Ausserdem gehoert da kein Gleichheitszeichen hin.Wenn das trotzdem kompiliert, dann definiert es ein Objekt vom Typ
Enum
.
-
wenn du den enum-typen dann richtig definiert hast, dann wirst du merken (sofern er nicht strictly-typed aus c++11 ist), dass die bereichsauflösung "
e::
" nicht notwendig ist.
-
ruuuth schrieb:
nö, guck dir mal die erste Antwort an
nein, schau DU sie dir nochmal an:
enum Color { Red }; Color c = Color::Red;
du schreibst
Enum e = {foo};
-
Groß- und Kleinschreibung sowie Orthographie ist dem Compiler sehr sehr sehr wichtig
Aber dabei helfen die IDE's in fast allen Fällen zu 99%.