Объявление enum
Объявление enum создает перечисление -
отдельный тип данных, который состоит из набора
именованных констант. Перечисление удобно
использовать, когда переменная должна принимать
одно из заранее известного набора значений.
Внутри фигурных скобок через запятую перечисляются
имена констант. По умолчанию первая константа
получает значение 0, а каждая следующая -
на единицу больше предыдущей. Именам можно явно
присвоить свои значения через оператор =.
Различают два вида объявления: обычный enum,
имена которого попадают в окружающую область
видимости, и enum class, имена которого
доступны только через имя самого перечисления.
Синтаксис
enum Name {
VALUE1,
VALUE2,
VALUE3
};
enum Name {
VALUE1 = 1,
VALUE2 = 5,
VALUE3
};
Пример
Давайте объявим перечисление с тремя константами и выведем их значения на экран:
#include <iostream>
using namespace std;
enum Color {
RED,
GREEN,
BLUE
};
int main()
{
cout << RED << endl;
cout << GREEN << endl;
cout << BLUE << endl;
return 0;
}
Результат выполнения кода:
0
1
2
Пример
Давайте явно зададим значения константам. Если третьей константе не указать значение, она продолжит нумерацию от предыдущей:
#include <iostream>
using namespace std;
enum Status {
OK = 200,
NOT_FOUND = 404,
ERROR = 500,
UNKNOWN
};
int main()
{
cout << OK << endl;
cout << NOT_FOUND << endl;
cout << ERROR << endl;
cout << UNKNOWN << endl;
return 0;
}
Результат выполнения кода:
200
404
500
501
Пример
Давайте объявим переменную типа перечисления и присвоим ей одну из констант:
#include <iostream>
using namespace std;
enum Color {
RED,
GREEN,
BLUE
};
int main()
{
Color color = GREEN;
cout << color << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте объявим enum class - в этом случае
имена констант доступны только через имя
перечисления:
#include <iostream>
using namespace std;
enum class Color {
RED,
GREEN,
BLUE
};
int main()
{
Color color = Color::GREEN;
cout << static_cast<int>(color) << endl;
return 0;
}
Результат выполнения кода:
1
Смотрите также
-
объявление
enum class,
которое создает строго типизированное перечисление -
объявление
struct,
которое создает структуру -
объявление
union,
которое создает объединение -
объявление
class,
которое создает класс