Enumerări (enum)

Un enum definește un tip cu un set fix de constante numite. Face codul mai lizibil decât să folosești numere magice.

enum Ziua { Luni=1, Marti, Miercuri, Joi, Vineri, Sambata, Duminica };

Ziua azi = Miercuri;
cout << azi << endl;  // 3 (Luni=1, Marti=2, Miercuri=3...)

if (azi == Miercuri) cout << "La mijloc de saptamana!" << endl;

enum class (C++11 — mai sigur)

enum class Culoare { Rosu, Verde, Albastru };
enum class Fruit { Rosu, Verde };  // nu conflictează cu Culoare

Culoare c = Culoare::Verde;
if (c == Culoare::Verde) cout << "Verde!" << endl;
enum class este mai sigur decât enum simplu: previne conversii implicite la int și evită coliziunile de nume.