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%.