90 votes

Héritage de la classe de l'enum de base

Existe-t-il un modèle permettant d'hériter d'un enum d'un autre enum en C++ ?

Quelque chose comme ça :

enum eBase 
{
   one=1, two, three
};

enum eDerived: public eBase
{
   four=4, five, six
};

0voto

bayda Points 7454

Impossible.
Mais vous pouvez définir l'enum de manière anonyme dans une classe, puis ajouter des constantes d'enum supplémentaires dans les classes dérivées.

-2voto

Michal Cohen Points 1
enum xx {
   ONE = 1,
   TWO,
   xx_Done
};

enum yy {
   THREE = xx_Done,
   FOUR,
};

typedef int myenum;

static map<myenum,string>& mymap() {
   static map<myenum,string> statmap;
   statmap[ONE] = "One";
   statmap[TWO] = "Two";
   statmap[THREE] = "Three";
   statmap[FOUR] = "Four";
   return statmap;
}

Utilisation :

std::string s1 = mymap()[ONE];
std::string s4 = mymap()[FOUR];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X