Class enumerations
An enumeration is a list of all the possible values in a logical collection. C++ enumerations are a great way of, well, enumerating things. For example, if our game uses variables that can only be in a specific range of values and if those values could logically form a collection or a set, then enumerations are probably appropriate to use. They will make your code clearer and less error-prone.
To declare a class enumeration in C++, we can use these two keywords, enum class, together, followed by the name of the enumeration, followed by the values the enumeration can contain, enclosed in a pair of curly braces {...}.
As an example, examine the following enumeration declaration. Note that it is convention to declare the possible values from the enumeration in uppercase:
enum class zombieTypes {
   REGULAR, RUNNER,
   CRAWLER, SPITTER, BLOATER
};
Note that, at this point, we have not declared any instances of zombieType, just...