Практика на перечисления в C++
Задачи объявляют enum class, сравнивают
константы и выбирают действие в switch
по значению перечисления.
Сделайте enum class Level с константами
Low, Mid и High.
Дана переменная:
Level lv = Level::Mid;
Через switch выведите метку "mid"
для Level::Mid и "other"
для остальных случаев.
Сделайте enum class Color с полем
hex в константах: Red - "f00",
Green - "0f0", Blue - "00f".
Выведите hex для Color::Green.
Сделайте enum class Op с константами
Plus и Minus. Напишите функцию
calc(a, b, op) с switch.
Выведите результат для 7, 3
и Op::Minus.
Сделайте enum class Size с константами
S, M и L. Дан вектор:
std::vector<Size> sizes = {
Size::S, Size::L, Size::M, Size::S,
};
Выведите число элементов Size::S.
Дан enum:
enum class Role { User, Admin };
bool canDelete(Role role) {
return role == Role::Admin;
}
Выведите canDelete(Role::User)
и canDelete(Role::Admin).
Сделайте enum class Dir с константами
N, E, S и W.
Напишите функцию label(Dir d)
с switch, которая возвращает
"north", "east", "south"
или "west". Выведите метку для
Dir::E.
Сделайте класс Task с полем
Status типа enum class Status
с константами New, Done.
Метод markDone меняет статус.
Создайте задачу, отметьте выполненной
и выведите 1, если статус Done.