An instance of an enumeration list can only be assigned to the enumerators within the same list. This becomes useful for when a variable can only have certain values. Here's an example:
1 2 3 4 5 6 7
enum Direction
{
North, East, South, West
};
Direction NewDirection( North ); // OK
NewDirection = 100; // Error. Must be an enumerator from Direction.
Enumerator lists have an underlying type, such as char, short, and int. The unsigned, and signed qualifiers are also used. The underlying type can be no other than the latter types. C++11 is introducing strongly-typed enums.
The enumerators are declared constant implicitly by the compiler.