Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Wieviele Werte hat mein enum-Typ?

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
19.11.2009, 18:38 Uhr
ao

(Operator)


Guten Abend zusammen. Eine Frage an die Kenner:

Wie kann ich zur Compilezeit herausfinden, wie viele Werte mein Enum-Typ hat. Die Werte sind nicht fortlaufend, sonst wäre es einfach. Beispiel:


C++:
typedef enum _EFarbe
{
    eSchwarz = 1
    , eBlau = 12
    , eRot = 35
    , eGruen = 39
    , eWeiss = 50
} EFarbe;

int farben [ xxxx ];



Angenommen, ich will, dass das Array farben[] 5 Elemente hat, weil es in dem enum 5 Farben gibt. Und falls (in einer späteren Programmversion) weitere Farben hinzukommen, will ich die einfach definieren (eLila = 78, ...), und das Array soll automatisch vergrößert werden.

Die Nummern der Farben (1, 12, 35, ...) sind vorgegeben und können nicht verändert werden.

Geht das? Wenn ja, wie?

Danke schön.

ao

Dieser Post wurde am 19.11.2009 um 18:38 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.11.2009, 18:56 Uhr
0xdeadbeef
Gott
(Operator)



C++:
typedef enum {
  eiSchwarz,
  eiBlau,
  eiRot,
  eiGruen,
  eiWeiss,
  eiAnzahl
} EFarbenIndex;

int EFarben[] = { 1, 12, 35, 39, 50 };


...und dann EFarben[eiSchwarz] etc. benutzen?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.11.2009, 08:19 Uhr
ao

(Operator)


Ja, das wird wohl das beste sein.
 
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: