Langage C++/Énumérations
Énumérations
[modifier | modifier le wikicode]En C++ les énumérations servent à créer des listes de constantes entières. Cela permet de regrouper des constantes d'un même contexte dans un même type. Pour des raisons de clarté il est préférable de définir chaque énumération dans un fichier d'en-tête propre. Pour des raisons de conception objet il est nécessaire de typer l'énumération à l'aide du mot clé "typedef". Enfin pour des raisons d'interférences il est conseillé de cloisonner l'énumération à un namespace.
namespace <NomNamespaceEnum>
{
typedef enum
{
<NomConstante0> [[= <ValeurConstante0>] [,
[...]
<NomConstanteN-1> [= <ValeurConstanteN-1>]]]
}<NomTypeEnum>;
}
Où <NomNamespaceEnum> est le nom du namespace qui encapsulera la portée des constantes énumérées, <NomConstante0> et <NomConstanteN-1> sont les identifiants des constantes, <ValeurConstante0> et <ValeurConstanteN-1> sont les valeurs respectivement de <NomConstante0> et <NomConstanteN-1> et <NomTypeEnum> est le type de l'énumération.
Il est à noter que les valeurs des constantes sont facultatives. Sans aucune précision, la valeur d'une constante est la valeur de la constante précédente augmenté de 1, la première valeur étant par défaut "0". Il faut aussi savoir qu’il ne peut y avoir qu'un identifiant pour une valeur donnée.
namespace NECouleursCartes
{
typedef enum
{
Pique,
Coeur,
Trefle,
Carreau
}ECouleursCartes;
}
int main(int argc, char* argv[])
{
NECouleursCartes::ECouleursCartes vMaCouleurCarte;
vMaCouleurCarte = NECouleursCartes::ECouleursCartes::Coeur;
//ou plus simplement :
vMaCouleurCarte = NECouleursCartes::Coeur;
return 0;
}