Jakie są klasy enum w C ++

Jakie są klasy enum w C ++

Enum Class jest funkcją C ++, która ułatwia użytkownikom zdefiniowanie nowych typów danych. Enum Class, lub wyliczenie to typ danych zdefiniowany przez użytkownika, który składa się z zestawu wymienionych wartości. Wartości te są stałe i zazwyczaj reprezentują grupę powiązanych podmiotów lub wyników.

Jakiś Enum Class W C ++ to wyliczenie oparte na zakresie, które jest używane do określenia zestawu wartości potencjalnych, które może zawierać zmienna. Proste zestawy powiązanych wartości, które są często używane jako stałe, można zdefiniować w ten bezpieczny typ. „Enum Class” Słowo kluczowe służy do tego zadeklarowania. Enum Class i enum różnią się od siebie tym, że są one bezpieczne typu. Enum Class nie porównuje wyliczających z różnych wyliczeń i nie zapewnia ukrytej konwersji na int.

Składnia klasy enum

// Deklaracja
Enum Class enumname value1, value2,… valuen;
// inicjalizacja
Enumname obiektName = enumname :: wartość;


Każdy typ integralny, w tym int, krótki, char, długi, niepodpisany itp., mogą być używane dla wartości.

Przykład klasy enum

Oto przykład Enum Class w c++.

#włączać
Enum Class Color fiolet, żółty, czarny;
int main ()
Kolor c = kolor :: czarny;
przełącznik (c)
Kolor obudowy :: czarny:
STD :: Cout << "The color is black\n";
przerwa;
Case Color :: Violet:
STD :: Cout << "The color is violet\n";
przerwa;
Kolor obudowy :: żółty:
STD :: Cout << "The color is yellow\n";
przerwa;

powrót 0;


W powyższym przykładzie Enum Class „Kolor” został zdefiniowany. Może wymagać jednej z trzech potencjalnych wartości: fiolet, żółty i czarny. Jest to wyliczenie zaskoczone, jak wskazuje „Enum Class” słowo kluczowe, co oznacza, że ​​wartości są dostępne tylko w ramach "Kolor" Przestrzeń nazw.

Deklarujemy zmienną typu "C" koloru "Kolor" i zainicjuj to "Czarny kolor" w głównej funkcji. Następnie, w oparciu o wartość "C", Wydrukujemy wiadomość za pomocą przełącznik oświadczenie. Musimy użyć "Kolor::" prefiks, aby uzyskać dostęp do wartości "Kolor", który jest rozliczonym wyliczeniem.

Wyjście



Enum Class ma następujące korzyści w języku C ++.

1: Globalne zanieczyszczenie przestrzeni nazw

Enum Class ogranicza zakres wartości wyliczonych. Natomiast regularne enums zanieczyszczyć globalną przestrzeń nazw, co utrudnia rozróżnienie między dwoma różnymi rodzajami wyliczenia w różnych zakresach.

2: Bezpieczeństwo typu

Enum Class jest bardziej bezpieczny typu niż regularny enums, co może prowadzić do subtelnych błędów. Wartość wyliczona w Enum Class nie jest domyślnie przekształcany w liczbę całkowitą. Pozostaje zgodnie z definicją, a użycie innej wartości, która nie jest w obecnie określonym zakresie, spowoduje błąd w czasie kompilacji.

3: Czytelność

Jakiś Enum Class zapewnia bardziej czytelną składnię, ponieważ wymaga stałych wartości, aby być kwalifikowanym do typu wyliczenia. Łatwiej jest odczytać i zrozumieć, które wyliczenie jest używane w kodzie. Łatwsze jest autokomolutne i zapobieganie błędom pisowni podczas korzystania z IDE, które może zidentyfikować zestaw wyliczających zadeklarowane w Enum Class. W porównaniu z wykorzystaniem konwencjonalnych stałych, składnia do dostępu do określonego wyliczenia jest również prostsza.

4: silnie wpisane

Enum Class gwarantuje, że przechowywane wartości są tego samego typu. Zapobiega porównywanie lub przypisanie wartości z różnych typów enum przez pomyłkę.

5: Zdefiniuj podstawowy typ

Możesz zdefiniować podstawowy typ enum, jednocześnie definiując Enum Class. Jeśli chcesz zapisać gromadzenie wyliczających jako określony typ danych, jest to pomocne. Na przykład możesz wybrać „INT” jako typ enum, jeśli chcesz zapisać kolekcję wyliczających jako liczbę całkowitą. Niemniej jednak, ponieważ oferuje lepsze bezpieczeństwo typu i zapobiega nieoczekiwanym zachowaniu, zaleca się użycie bez podpisanej liczby całkowitej jako typu podstawowego.

6: enkapsulacja

Możliwość lepszego zamknięcia danych jest jednym z Enum Class's cechy charakterystyczne. Powoduje to bardziej ustrukturyzowany i zrozumiały kod, ponieważ wartości wyliczone są dostępne tylko w klasie zadeklarowanej. Ponadto poprawia bezpieczeństwo typu i eliminuje nieporozumienia między różnymi wyliczającymi.

Wniosek

Enum Class W C ++ jest niezbędną funkcją, która zapewnia większą kontrolę i przejrzystość w definiowaniu nowych typów danych. Z prostą składnią i naturą, jest to zalecana praktyka do użycia Enum zajęcia w C ++, gdy tylko musisz zdefiniować zestaw powiązanych stałych. Nie tylko sprawia, że ​​Twój kod jest bardziej zorganizowany i czytelny, ale także poprawia wydajność i bezpieczeństwo Twojego programu.