Перечисление enum class в C++
Ключевое слово enum class задает отдельный
тип с заранее известным набором значений. Константы
перечисляют в теле объявления; добавить новую константу
можно только изменив само объявление типа.
Переменная этого типа хранит ровно одну из перечисленных
констант. Запишем enum class Day с семью днями
и сохраним в переменной понедельник:
#include <iostream>
enum class Day {
monday,
tuesday,
wednesday,
thursday,
friday,
saturday,
sunday
};
int main() {
Day today = Day::monday;
switch (today) {
case Day::monday:
std::cout << "monday\n";
break;
case Day::tuesday:
std::cout << "tuesday\n";
break;
case Day::wednesday:
std::cout << "wednesday\n";
break;
case Day::thursday:
std::cout << "thursday\n";
break;
case Day::friday:
std::cout << "friday\n";
break;
case Day::saturday:
std::cout << "saturday\n";
break;
case Day::sunday:
std::cout << "sunday\n";
break;
}
return 0;
}
Тип переменной можно указать явно, как у любого другого
типа. Запишем enum class Mode и переменную
с явным типом Mode:
#include <iostream>
enum class Mode { view, edit };
int main() {
Mode mode = Mode::edit;
switch (mode) {
case Mode::view:
std::cout << "view\n";
break;
case Mode::edit:
std::cout << "edit\n";
break;
}
return 0;
}
Объявите enum class Planet с константами
mercury, venus и earth.
Сохраните Planet::earth в переменную
home и выведите для нее короткую метку
через switch.
Объявите enum class Size с константами
s, m и l.
Создайте переменные first и second
со значением Size::m и выведите true,
если они совпадают, иначе false.