РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
673 of 815 menu

Объявление 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,
    которое создает класс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить