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

Параметр и результат enum class в C++

Тип enum class подходит для параметра и для типа результата так же, как int или имя класса: функция получает один из заранее известных вариантов и может вернуть другую константу того же типа.

В теле функции значение сравнивают или разбирают через switch. Запишем функцию, которая по цвету возвращает короткую метку, и выведем ответ для Color::green:

#include <iostream> #include <string> enum class Color { red, green, blue }; std::string name(Color c) { switch (c) { case Color::red: return "red"; case Color::green: return "green"; case Color::blue: return "blue"; } return ""; } int main() { std::cout << name(Color::green) << "\n"; return 0; }

Функция может возвращать саму константу перечисления. Запишем выбор режима по флагу и выведем метку через switch:

#include <iostream> enum class Mode { view, edit }; Mode pick(bool canEdit) { if (canEdit) { return Mode::edit; } return Mode::view; } int main() { Mode mode = pick(true); switch (mode) { case Mode::view: std::cout << "view\n"; break; case Mode::edit: std::cout << "edit\n"; break; } return 0; }

Объявите enum class Shape с константами circle, square и triangle. Напишите функцию с параметром Shape, которая возвращает короткое имя фигуры в виде строки. Вызовите ее с Shape::triangle и выведите результат.

Объявите enum class Size с константами s, m и l. Напишите функцию, которая принимает bool и возвращает Size::l, если аргумент true, иначе Size::s. Выведите метку для результата вызова с false.

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