Wäre enum-Zugriff über EnumName::Wert oder EnumName.Wert nicht viel besser?
-
Na ja, irgendwie müllt man sich damit ja den ganzen Namespace zu.
Man könnte schreiben.
enum Color { COLOR_RED, COLOR_GREEN }:Aber schön ist das ja auch nicht.
-
a propos, ich hab net gemeint, du sollst des enum in ne klasse stecken, sondern ne klasse schreiben, die es gleiche macht wie n enum...
wer braucht schon die standard-funktionen
-
gab es enum schon in C? wenn ja dann ist der grund ja wieder kompatibilität.

-
enums sind afaik ne sache von c++
-
namespace Color { enum {red,green,blue}; };Vorden schrieb:
enums sind afaik ne sache von c++
c hat enums auch -> kann mir nicht vorstellen das c das von c++ uebernommen hat
-
Enums gibt es auch in C und man würde es in C++ so machen:
struct Color { static const Color Red; static const Color Green; };Das ist auch kein Hack, sondern die sicherere Alternative, da ein enum ja jederzeit in ein int konvertiert werden kann.
-
User--- schrieb:
Enums gibt es auch in C und man würde es in C++ so machen:
struct Color { static const Color Red; static const Color Green; };Das ist auch kein Hack, sondern die sicherere Alternative, da ein enum ja jederzeit in ein int konvertiert werden kann.
Die Konvertierung nach int ist gelegentlich aber durchaus praktisch (z.B. bei der bit-Verknüpfung mehrerer Werte).
Ich verwende eigentlich immer sowas wie:
struct Color { enum Value { red, green, blue }; }; typedef Color::Value ColorValue; void f() { ColorValue c = Color::red; }Das ist für die meisten einfachen Einsatzgebiete ausreichend.
-
was spricht eigentlich gegen diese variante:
Cpt.Tanga schrieb:
namespace Color { enum {red,green,blue}; };?
die erscheint mir nicht so umstaendlich und sollte das selbe resultat erziehlen.
-
Cpt.Tanga schrieb:
was spricht eigentlich gegen diese variante:
Cpt.Tanga schrieb:
namespace Color { enum {red,green,blue}; };?
die erscheint mir nicht so umstaendlich und sollte das selbe resultat erziehlen.Tut sie aber nicht. Da deine Aufzählung unbenannt ist, kannst du davon nach der Definition keine Objekte mehr anlegen.
-
dann halt so:
namespace Color { enum Color {red,green,blue}; };:p
