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

Объявление enum class

Объявление enum class создает строго типизированное перечисление. В отличие от обычного enum, элементы такого перечисления принадлежат области видимости самого перечисления и не преобразуются неявно в целые числа. После ключевого слова enum class указывается имя типа перечисления, затем в фигурных скобках через запятую перечисляются его элементы. При необходимости после имени типа через двоеточие можно указать целочисленный базовый тип.

Синтаксис

enum class Name { Value1, Value2, Value3 };

С указанием базового типа:

enum class Name : type { Value1, Value2, Value3 };

Пример

Объявим перечисление Color с тремя элементами и выведем значение одного из них, явно преобразовав его в целое число:

#include <iostream> using namespace std; enum class Color { Red, Green, Blue }; int main() { Color col = Color::Green; if (col == Color::Green) { cout << "green" << endl; } cout << static_cast<int>(col) << endl; return 0; }

Результат выполнения кода:

"green" 1

Пример

Объявим перечисление с базовым типом char и выведем его элементы, преобразовав их в символы:

#include <iostream> using namespace std; enum class Letter : char { A = 'a', B = 'b', C = 'c' }; int main() { cout << static_cast<char>(Letter::A) << endl; cout << static_cast<char>(Letter::B) << endl; cout << static_cast<char>(Letter::C) << endl; return 0; }

Результат выполнения кода:

"'a'" "'b'" "'c'"

Смотрите также

  • объявление enum,
    которое создает обычное перечисление
  • объявление struct,
    которое создает структуру
  • объявление union,
    которое создает объединение
  • объявление class,
    которое создает класс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить