Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpEnTI 97 of 150 menu
◀ ▶

Приведение перечисления к int в C++

Значение enum class нельзя подставить туда, где ждут обычный int: это отдельный тип. Номер читают записью static_cast<int> вокруг значения.

Запись static_cast<int>(Level::high) дает целое с тем числом, которое задано в объявлении. Запишем перечисление с явными кодами и выведем число для high:

#include <iostream> enum class Level : int { low = 1, high = 5 }; int main() { std::cout << static_cast<int>(Level::high) << "\n"; return 0; }

Тот же прием сохраняет код в переменную перед выводом или сравнением с обычным числом. Запишем скидку и выведем процент:

#include <iostream> enum class Discount : int { none = 0, sale = 10, mega = 30 }; int main() { Discount d = Discount::mega; int percent = static_cast<int>(d); std::cout << percent << "\n"; return 0; }

Объявите enum class Traffic с типом int: city - 60, road - 90, highway - 110. Выведите лимит для Traffic::road как целое.

Объявите enum class HttpStatus с типом int и кодом 200 для ok. Сохраните HttpStatus::ok в переменную, получите из нее int через операцию static_cast и выведите результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить