Перечисление C ++

В этой статье вы научитесь работать с перечислением (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 ++ можно выполнить практически все, что угодно, без использования перечислений. Однако в определенных ситуациях они могут быть весьма кстати. Вот что отличает хороших программистов от хороших программистов.

Интересные статьи...