Jak pobrać wartość zmiennej enum?

0

Witam.

Mam problem z jednym rozdziałem z książki... chodzi tu o typ wyliczeniowy... nie rozumiem jak można pobrać od użytkownika taką zmienną... przykładowo:

enum liczby{one = 1, two =2, three =3}

liczby zmienna;

switch(zmienna)
{
}

Jeśli dobrze rozumiem to enum jest po to aby nie można było wprowadzić innej wartości niż tej która jest zawarta w enum tak? I jak pobrać wartość ,zmienna, która należy do typu wyliczeniowego liczby? Wiem że będzie potrzeba funkcja, która będzie zwracała wartość typu liczby, ale jak ma wyglądać taka funkcja?

1

tablica z tekstami wprowadzony tekst wyszukujesz w tablice.

1

W enum istnieje również opcja default, która pozwala określić działanie w przypadku gdy żadna z wymienionych wartości nie zostanie przywołana/podana/wprowadzona :)

// pss.. w switch nie w enum, pomyliłem się

0

A czy to się w ogóle do czegoś przydaje? Bo to niby ma zabezpieczać przed błędnych wprowadzeniem danych a ale przecież teoretycznie to można sobie z tym poradzić bez enum.

Mam jeszcze drugie pytanie: Czy w C++ korzysta się jeszcze ze struktur? Słyszałem że to przeżytek po C.

2

Mam jeszcze drugie pytanie: Czy w C++ korzysta się jeszcze ze struktur?

Klasa ma domyślnie wszystko prywatne, struktura publiczne - na tym różnice się kończą.
Używasz tego, czego wymaga sytuacja.

EDIT:

Bo to niby ma zabezpieczać przed błędnych wprowadzeniem danych a ale
przecież teoretycznie to można sobie z tym poradzić bez enum.

Wszystko jest dla ludzi. Co wydaje Ci się najbardziej naturalne?

  • 1
enum struct Color : unsigned int{
    Red, Green, Blue, White, Black, Mango = 667
};
  • 2
namespace Color{
    static const unsigned int Red = 0, Green = 1, Blue = 2, White = 3, Black = 4, Mango = 667;
}
  • 3
struct Color{
	static constexpr unsigned int Red = 0, Green = 1, Blue = 2, White = 3, Black = 4, Mango = 667;
};

Nie wiem gdzie to zgłosić, dlatego strzelam @Adam Boduch: słowo kluczowe constexpr nie jest uwzględniane przez znacznik kolorujący składnie

1

Moim zdaniem ten typ jest przydatny wtedy kiedy trzeba wybrać jakieś zdarzenie,
których jest kilka w programie np

 
enum Kierunek{lewo,prawo,gora dol};

Kierunek kierunek;
if(a==b) kierunek=lewo; else kierunek=prawo;

if (kierunek==prawo) break;

a jeżeli chodzi o pobranie wartości można skorzystać z rzutowania

enum Kolor {red,green,blue}; 

Kolor kolor;
int a;
cin>>a;

switch(static_cast<Kolor>(a))  {
case red:  break;
case green: break;
case blue: break;
default:
}







 

1 użytkowników online, w tym zalogowanych: 0, gości: 1