Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Amare ? la met? di credere.

Victor Hugo 

Sondaggio:

Qual'? il migliore tra i pi? recenti allenatori della nazionale?

Trapattoni
Zoff
Sacchi
Vicini
Maldini

visualizza risultati


 

Enumerazioni

A volte puo` essere utile poter definire un nuovo tipo estensionalmente, cioe` elencando esplicitamente i valori che una variabile (o una costante) di quel tipo puo` assumere. Tali tipi vengono detti enumerati e sono definiti tramite la keyword enum con la seguente sintassi:

enum < NomeTipo > {
  < Identificatore >,
/* ... */
  < Identificatore >
};

Esempio:

 

enum Elemento {
  Idrogeno,
  Elio,
  Carbonio,
  Ossigeno
};

Elemento Atomo = Idrogeno;

 

Gli identificatori Idrogeno, Elio, Carbonio e Ossigeno costituiscono l'intervallo dei valori del tipo Elemento. Si osservi che come da sintassi, i valori di una enumerazione devono essere espressi tramite identificatori, non sono ammessi valori espressi in altri modi (interi, numeri in virgola mobile, costanti carattere...), inoltre gli identificatori utilizzati per esprimere tali valori devono essere distinti da qualsiasi altro identificatore visibile nello scope dell'enumerazione onde evitare ambiguita`.
Il compilatore rappresenta internamente i tipi enumerazione associando a ciascun identificatore di valore una costante intera, cosi` che un valore enumerazione puo` essere utilizzato in luogo di un valore intero, ma non viceversa:

 

enum Elemento {
  Idrogeno,
  Elio,
  Carbonio,
  Ossigeno
};

Elemento Atomo = Idrogeno;
int Numero;

Numero = Carbonio; // Ok!
Atomo = 3;         // Errore!

 

Nell'ultima riga dell'esempio si verifica un errore perche` non esiste un operatore di conversione da int a Elemento, mentre essendo i valori enumerazione in pratica delle costanti intere, il compilatore e` in grado di eseguire la conversione a int. E` possibile forzare il valore intero da associare ai valori di una enumerazione:

 

enum Elemento {
  Idrogeno = 2,
  Elio,
  Carbonio = Idrogeno - 10,
  Ferro = Elio + 7,
  Ossigeno = 2
};

 

Non e` necessario specificare un valore per ogni identificatore dell'enumerazione, non ci sono limitazioni di segno e non e` necessario usare valori distinti (anche se cio` probabilmente comporterebbe qualche problema). Si puo` utilizzare anche un identificatore dell'enumerazione precedentemente definito.
La possibilita` di scegliere i valori da associare alle etichette (identificatori) dell'enumerazione fornisce un modo alternativo di definire costanti di tipo intero.

 

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2022 Cataldo Sasso