반도체/C++

27. C++열거형

Clair_de_Lune 2024. 8. 20. 13:40
728x90

C++에서 열거형(enum)은 명명된 정수 상수의 집합을 정의하는 데 사용되는 데이터 형식으로, 주로 코드의 가독성을 높이고 상수 값을 의미 있게 표현하는 데 유용합니다. 열거형에 대한 구체적인 설명을 아래와 같이 정리해 보겠습니다.

1. 기본 열거형 (enum)

기본적인 열거형은 다음과 같이 정의할 수 있습니다.

enum EnumName {
    Constant1,
    Constant2,
    Constant3,
    // ...
};
  • 예제:
#include <iostream>

enum Day {
    MONDAY,    // 0
    TUESDAY,   // 1
    WEDNESDAY, // 2
    THURSDAY,  // 3
    FRIDAY,    // 4
    SATURDAY,  // 5
    SUNDAY     // 6
};

int main() {
    Day today = WEDNESDAY;

    if (today == WEDNESDAY) {
        std::cout << "Today is Wednesday." << std::endl;
    }

    return 0;
}

2. 값 지정

열거형 상수에 특정 값을 지정할 수 있습니다.

enum ErrorCode {
    SUCCESS = 0,
    WARNING = 1,
    ERROR = 2,
    FATAL_ERROR = 3
};

3. 열거형의 기본 값

열거형 상수는 기본적으로 0부터 시작하여 1씩 증가합니다. 하지만 명시적으로 값을 설정하면 그 이후의 상수는 이전 상수의 값에서 1씩 증가합니다.

enum Color {
    RED = 1,
    GREEN,  // 2
    BLUE,   // 3
    YELLOW = 5,
    ORANGE   // 6
};

4. 열거형의 범위

기본 enum은 전역 범위를 가지며, 같은 이름의 상수가 다른 열거형에 존재할 경우 이름 충돌이 발생할 수 있습니다.

5. enum class (C++11 이후)

C++11부터 도입된 enum class는 열거형의 범위를 제한하고, 타입 안전성을 제공하는 기능입니다.

enum class Season {
    WINTER,
    SPRING,
    SUMMER,
    FALL
};

int main() {
    Season currentSeason = Season::SUMMER;

    // 타입 안전성을 제공하므로 직접 비교할 수 없음
    // if (currentSeason == SUMMER) { ... } // 오류 발생

    // 올바른 비교 방법
    if (currentSeason == Season::SUMMER) {
        std::cout << "It's summer!" << std::endl;
    }

    return 0;
}

6. 사용 용도

열거형은 다음과 같은 상황에서 유용하게 사용됩니다:

  • 상태 표현: 프로그램의 상태나 모드를 나타낼 때.
  • 옵션 선택: 사용자가 선택할 수 있는 여러 옵션을 정의할 때.
  • 플래그 관리: 특정 옵션이 활성화되었는지 확인할 때.

7. 열거형의 장점

  • 가독성 향상: 코드의 의미를 명확하게 하여 가독성을 높입니다.
  • 유지보수 용이: 상수를 한 곳에서 관리할 수 있어 유지보수가 용이합니다.
  • 타입 안전성: enum class를 통해 타입 안전성을 확보할 수 있습니다.
728x90

'반도체 > C++' 카테고리의 다른 글

29. C++의 스레드 개념  (0) 2024.08.30
28. C++에서 사용하는 함수들  (1) 2024.08.20
26. 연산자,조건문,반복문  (1) 2024.08.14
25. C++에서 자주 사용하는 개념들  (1) 2024.08.14
24. C++에서 GET과 SET 메서드  (1) 2024.08.14