Перечисляемый тип enum
Иногда нужно создать перечисления состояний или набор констант, для более удобного обращения используется перечисляемый тип enum, по сути это структура/класс созданная только для целочисленных значений, ну или же набор define т.к. при компиляции произойдет замена enum на числа.
Синтаксис для enum:
enum NameEnum
{
CONST_0, // CONST_0=0
CONST_1, // CONST_1=CONST_0+1=1
…
CONST_N
};
enum NameEnum2
{
CONST_0=10, // CONST_0=10
CONST_1, // CONST_1=CONST_0+1=11
CONST_2=1, // CONST_2=1
…
CONST_N
};
Обращение к enum:
NameEnum ::CONST_1
Можно создавать переменную типа enum например:
NameEnum MyEnum;
и присваивать ей значение:
MyEnum = NameEnum ::CONST_0;
Перечисляемый тип может быть членом/полем какого-либо класса.
Также можно писать:
typedef enum NameEnum
{
CONST_0,
CONST_1
} MyEnum;