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