V tomto článku se naučíte pracovat s výčtem (enum). Dozvíte se také, kde se enums běžně používají v programování v C ++.
Výčet je uživatelem definovaný datový typ, který se skládá z integrálních konstant. K definování výčtu se používá klíčové slovo enum .
výroční sezóna (jaro, léto, podzim, zima);
Zde je název výčtu sezóna.
A jaro, léto a zima jsou hodnoty typové sezóny.
Ve výchozím nastavení je jaro 0, léto 1 a tak dále. Během deklarace můžete změnit výchozí hodnotu prvku enum (pokud je to nutné).
výroční sezóna (jaro = 0, léto = 4, podzim = 8, zima = 12);
Vyjmenovaná deklarace typu
Když vytvoříte výčtový typ, vytvoří se pouze podrobný plán pro proměnnou. Zde můžete vytvořit proměnné typu enum.
enum boolean (false, true); // vnitřní funkce výčet boolean check;
Zde se vytvoří proměnná kontrola typu enum boolean
.
Zde je další způsob, jak deklarovat stejnou kontrolní proměnnou pomocí jiné syntaxe.
výčet boolean (false, true) kontrola;
Příklad 1: Typ výčtu
#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; )
Výstup
4. den
Příklad 2: Změna výchozí hodnoty výčtu
#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; )
Výstup
Léto = 4
Proč se enumy používají v programování v C ++?
Proměnná výčtu přebírá z mnoha možných hodnot pouze jednu hodnotu. Příklad k prokázání,
#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; )
Výstup
Velikost proměnné enum 4 bajty.
Je to proto, že velikost celého čísla je 4 bajty .;
Díky tomu je enum dobrou volbou pro práci s příznaky.
Stejný úkol můžete provést pomocí struktur C ++. Práce s výčty vám však poskytuje efektivitu spolu s flexibilitou.
Jak používat výčty pro příznaky?
Vezměme si příklad,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Předpokládejme, že navrhujete tlačítko pro aplikaci Windows. Můžete nastavit příznaky ITALICS, BOLD a UNDERLINE pro práci s textem.
Existuje důvod, proč jsou všechny integrální konstanty výkonem 2 ve výše uvedeném pseudokódu.
// V binárním formátu ITALICS = 00000001 BOLD = 00000010 PODKLAD = 00000100
Protože jsou integrální konstanty výkonem 2, můžete kombinovat dva nebo více příznaků najednou bez překrývání pomocí bitového NEBO | operátor. To vám umožní vybrat dva nebo více příznaků najednou. Například,
#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; )
Výstup
5
Když je výstup 5, vždy víte, že se používá tučné písmo a podtržení.
K vašim požadavkům můžete také přidat příznak.
if (myDesign & ITALICS) (// kód pro kurzívu)
Zde jsme do našeho designu přidali kurzívu. Všimněte si, že uvnitř příkazu if je napsán pouze kód kurzívy.
V programování v C ++ můžete dosáhnout téměř čehokoli bez použití výčtu. V určitých situacích však mohou být velmi užitečné. To je to, co odlišuje dobré programátory od skvělých programátorů.