В этой статье вы научитесь работать с перечислением (enum). Кроме того, вы узнаете, где перечисления обычно используются в программировании на C ++.
Перечисление - это определяемый пользователем тип данных, состоящий из целочисленных констант. Для определения перечисления используется ключевое слово enum .
enum season (весна, лето, осень, зима);
Здесь название перечисления - сезон.
И весна, лето и зима являются значениями типа «сезон».
По умолчанию весна - 0, лето - 1 и так далее. Вы можете изменить значение по умолчанию для элемента перечисления во время объявления (при необходимости).
enum season (весна = 0, лето = 4, осень = 8, зима = 12);
Объявление перечислимого типа
Когда вы создаете перечислимый тип, создается только схема для переменной. Вот как вы можете создавать переменные типа enum.
перечисление логическое (ложь, истина); // внутри функции enum boolean check;
Здесь создается проверка типа переменной enum boolean
.
Вот еще один способ объявить одну и ту же проверочную переменную с использованием другого синтаксиса.
enum boolean (false, true) проверка;
Пример 1: Тип перечисления
#include using namespace std; enum week ( Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ); int main() ( week today; today = Wednesday; cout << "Day " << today+1; return 0; )
Вывод
День 4
Пример 2: изменение значения перечислений по умолчанию
#include using namespace std; enum seasons ( spring = 34, summer = 4, autumn = 9, winter = 32); int main() ( seasons s; s = summer; cout << "Summer = " << s << endl; return 0; )
Вывод
Лето = 4
Почему перечисления используются в программировании на C ++?
Переменная перечисления принимает только одно значение из многих возможных значений. Пример, чтобы продемонстрировать это,
#include using namespace std; enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; cout << "Size of enum variable " << sizeof(card) << " bytes."; return 0; )
Вывод
Размер переменной перечисления 4 байта.
Это потому, что размер целого числа составляет 4 байта .;
Это делает enum хорошим выбором для работы с флагами.
Вы можете выполнить ту же задачу, используя структуры C ++. Однако работа с перечислениями обеспечивает эффективность и гибкость.
Как использовать перечисления для флагов?
Возьмем пример,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Предположим, вы разрабатываете кнопку для приложения Windows. Вы можете установить флаги ITALICS, BOLD и UNDERLINE для работы с текстом.
Есть причина, по которой все интегральные константы в приведенном выше псевдокоде имеют степень двойки.
// В двоичном формате ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Поскольку интегральные константы имеют степень двойки, вы можете объединить два или более флага одновременно без перекрытия, используя побитовое ИЛИ | оператор. Это позволяет вам выбрать сразу два или более флага. Например,
#include using namespace std; enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 cout << myDesign; return 0; )
Вывод
5
Когда на выходе получается 5, вы всегда знаете, что используются жирный шрифт и подчеркивание.
Также вы можете добавить флаг к своим требованиям.
if (myDesign & ITALICS) (// код для курсива)
Здесь мы добавили курсив к нашему дизайну. Обратите внимание, что внутри оператора if написан только код, выделенный курсивом.
В программировании на C ++ можно выполнить практически все, что угодно, без использования перечислений. Однако в определенных ситуациях они могут быть весьма кстати. Вот что отличает хороших программистов от хороших программистов.