< Langage C++
fin de la boite de navigation du chapitre

Énumérations

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.

Définition
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.

Exemple
namespace NECouleursCartes
{
     typedef enum
     {
          Pique,
          Coeur,
          Trefle,
          Carreau
     }ECouleursCartes;
}
Fin de l'exemple
Exemple
int main(int argc, char* argv[])
{
     NECouleursCartes::ECouleursCartes vMaCouleurCarte;
     vMaCouleurCarte = NECouleursCartes::ECouleursCartes::Coeur;
     //ou plus simplement : 
     vMaCouleurCarte = NECouleursCartes::Coeur;
     return 0;
}
Fin de l'exemple
Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.