C ++ изброяване

В тази статия ще се научите да работите с изброяване (enum). Също така ще научите къде често се използват преброявания при програмиране на C ++.

Изброяването е дефиниран от потребителя тип данни, който се състои от интегрални константи. За дефиниране на изброяване се използва ключова дума enum .

 enum сезон (пролет, лято, есен, зима);

Тук името на изброяването е сезон.

И пролетта, лятото и зимата са стойности на типа сезон.

По подразбиране пролетта е 0, лятото е 1 и така нататък. Можете да промените стойността по подразбиране на елемент на преброяване по време на декларацията (ако е необходимо).

 enum сезон (пролет = 0, лято = 4, есен = 8, зима = 12);

Декларация за изброен тип

Когато създавате изброен тип, се създава само план за променливата. Ето как можете да създадете променливи от тип enum.

enum boolean (false, true); // вътрешна функция enum булева проверка;

Тук се създава променлива проверка на типа 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: Промяна на стойността по подразбиране на Enum

 #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 ++?

Променливата enum взема само една стойност от много възможни стойности. Пример за демонстрация,

 #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 за флагове?

Нека вземем пример,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Да предположим, че проектирате бутон за приложение за Windows. Можете да зададете флагове ITALICS, BOLD и UNDERLINE за работа с текст.

Има причина, поради която всички интегрални константи са степен на 2 в горния псевдокод.

 // В двоичен ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Тъй като интегралните константи са степен 2, можете да комбинирате два или повече флага наведнъж, без да се припокривате, като използвате битови ИЛИ | оператор. Това ви позволява да изберете два или повече знамена наведнъж. Например,

 #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 ++, без да използвате изброявания. Те обаче могат да бъдат доста удобни в определени ситуации. Това отличава добрите програмисти от големите програмисти.

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