Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Frage zu enum

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.11.2007, 10:39 Uhr
Lensflare



Hallo.

ich benutze enum gerne in Verbindung mit Arrays
Also zum Beispiel:


C++:
const short menuTypesCount = 3;

enum MENU_TYPE
{
  MAIN_MENU = 0,
  OPTIONS_MENU = 1,
  CHOOSE_PLAYER_MENU = 2
}

Menu* menus[menuTypesCount];

//...

menus[MAIN_MENU] = new MainMenu();



Gibt es eine Garantie, dass enum die Aufzählung immer bei 0 beginnt und immer um 1 erhöht, sodass ich die Zuweisungen von 0 bis n weglassen kann?

Und kann ich irgendwie die Anzahl der Aufzählungen eines enums herausfinden, damit ich nicht immer eine Konstante dafür anlegen muss? Also für die Größe des Arrays.
Wäre dann auch nicht so fehleranfällig, falls man in enum was ändert und vergisst die Anzahl in der "Elemente" zu aktualisieren.

Danke im voraus.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.11.2007, 10:43 Uhr
ao

(Operator)


Ja, enums zählen immer von 0 in Einerschritten, außer du gibts einer der Konstanten explizit ihren Wert. Solange du das nicht machst, kriegst du die Anzahl der enum-Werte so:


C++:
enum MENU_TYPE
{
  MAIN_MENU,
  OPTIONS_MENU,
  CHOOSE_PLAYER_MENU,

  MENU_TYPES_COUNT     // dieser muss der letzte sein,
                             // und die Werte davor dürfen
                             // keine explizite Zuweisung haben.
};

Menu* menus[MENU_TYPES_COUNT];



Gruß,
ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.11.2007, 10:47 Uhr
Lensflare



ok, danke
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 16.11.2007 um 10:48 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.11.2007, 11:18 Uhr
0xdeadbeef
Gott
(Operator)


Zusätzlich, wenn irgendwo eine Konstante zugewiesen wird, zählt die enum von da an weiter, also

C++:
enum {
  null,
  eins,
  zwei,
  zwo = zwei,
  drei,
  vier,
  /* fuenf mag ich nicht */
  sechs = 6,
  sieben,
  acht,
  neun
};


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 16.11.2007 um 11:20 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: