Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Elaine
Język C++

enum

[słowo kluczowe] Typ wyliczeniowy.

Składnia

C/C++
enum[ nazwa_typu ]
{
    [ lista_wartosci ]
}[ deklarator ];

Opis szczegółowy

Typ wyliczeniowy to typ zdefiniowany przez użytkownika składający się z nazwanych stałych.

Domyślnie pierwsza stała ma wartość 0, a każda kolejna jest o 1 większa niż poprzednia, chyba że zostanie podana inna wartość dla konkretnej stałej. Wartości stałych mogą się powtarzać. Nazwa stałej nie może już istnieć w zakresie, w którym definiowany jest typ wyliczeniowy.

Typ wyliczeniowy może być niejawnie przekonwertowany do typu całkowitego, jednakże konwersja w drugą stronę wymaga rzutowania. Wynik tego rzutowania jest niezdefiniowany, jeśli wartość całkowita nie jest jedną ze stałych typu wyliczeniowego.

Przykład

C/C++
#include <cstdlib>
#include <ctime>
#include <cstdio>
using namespace std;

// typ wyliczeniowy reprezentujący kierunek
enum Direction
{
    DIRECTION_UP /* = 0 */,
    DIRECTION_DOWN /* = 1 */,
    DIRECTION_LEFT = 5,
    DIRECTION_RIGHT /* = 6 */
};

void printDirection( Direction dir )
{
    switch( dir )
    {
    case DIRECTION_UP:
        puts( "góra" );
        break;
    case DIRECTION_DOWN:
        puts( "dół" );
        break;
    case DIRECTION_LEFT:
        puts( "lewo" );
        break;
    case DIRECTION_RIGHT:
        puts( "prawo" );
        break;
    }
}

int main()
{
    srand( time( 0 ) );
   
    unsigned dirAsInt = static_cast < unsigned >( rand() ) % 4;
    if( dirAsInt >= 2 )
    { // wylosowaliśmy 2 lub 3, wartości typu wyliczeniowego to 0, 1, 5 i 6
        // dodajemy 3, aby otrzymać 5 i 6
        dirAsInt += 3;
    }
   
    Direction dir = static_cast < Direction >( dirAsInt );
   
    printDirection( dir );
    return 0;
}

Linki zewnętrzne