Typ prosty wyliczeniowy

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 3690 razy

Wszędzie tam, gdzie istnieje konieczność oznaczenia pewnych danych w sposób niejawny, np. nazw dni tygodnia, za którymi będą stały pewne liczby przypisane do danej nazwy dnia stosuje się typy wyliczeniowe, które wymuszają podanie odpowiedniej wartości do zmiennej typu wyliczeniowego. Przykład deklaracji takiego typu wyliczeniowego można obejrzeć poniżej.

// Deklaracja typu wyliczeniowego enum DaysOfWeek{ Monday, // poniedziałek Tuesday, // wtorek Wednesday, // środa Thursday, // czwartek Friday, // piątek Saturday, // sobota Sunday // niedziela }; // Tworzenie zmiennej typu wyliczeniowego i przypisanie jej wartości odpowiadającej poniedziałkowi enum DaysOfWeek d = Monday;

Wszystkie zmienne wyliczeniowe enum są typu int a więc zajmują 32-bajty pamięci i są to liczby całkowite ze znakiem. Istnieje też możliwość ustawienia własnych wartości dla kolejnych elementów danego typu wyliczeniowego (domyślnie numeracja jest od 0 z krokiem co 1. Przykład własnych wartości przypisanych do danego elementu:

enum DaysOfWeek{ Monday = 2, // od tego momentu kolejne elementy będą numerowane co 1 w zwyrz Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; enum DaysOfWeek d = Monday;

Przykład kodu pokazującego działanie typu wyliczeniowego:

#include <iostream> enum DaysOfWeek{ Monday = 2, // od tego momentu kolejne elementy będą numerowane co 1 w zwyrz Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main(){ std::cout<<"Poniedzialek: "<<(int)Monday<<std::endl; std::cout<<"Wtorek: "<<(int)Tuesday<<std::endl; std::cout<<"Sroda: "<<(int)Wednesday<<std::endl; std::cout<<"Czwartek: "<<(int)Thursday<<std::endl; std::cout<<"Piatek: "<<(int)Friday<<std::endl; std::cout<<"Sobota: "<<(int)Saturday<<std::endl; std::cout<<"Niedziela: "<<(int)Sunday<<std::endl<<std::endl; std::cout<<"Wcisnij enter, aby zamknac program..."; std::cin.get(); return 0; }
Propozycje książek