거북이의 기술블로그 2024. 6. 21. 17:20
enum (열거형)

 

열거형

  • 상수를 정의하고, (default 값) 순차적으로 정의되어있는 수들을 그룹화하는 방법
  • 원하는 숫자를 지정할 수도 있다.
enum class
- 일반 enum 과는 다른 점이 있다. (C++11 이후)
- 일반 enum의 경우, int 범위 내의 상수를 가진다 (이름만으로 상수에 접근이 가능하다)
- enum class의 경우, 열거형 상수는 '[enumName]::[상수Name] 형식으로 접근해야하며 명확히 구분된다
(같은 상수 이름을 가지더라도 문제가 되지 않는다) 
enum Color
{
    RED, // 0
    GREEN, // 1
    BLUE // 2
};

//숫자 지정 가능
enum Status
{
    ACTIVE =1,
    INACTIVE = 4,
    PENDING = 2
};

//타입 지정 가능
enum Size : short {
    SMALL = 1,
    MEDIUM, // 2
    LARGE // 3
};


// class로 설정하면 전역으로 설정되는 enum과 충돌이 나지 않는다 (겹치지 않음)
enum class Direction{
    UP,
    DOWN,
    LEFT,
    RIGHT
};

int main()
{
    // Direction을 지정해서 사용해야한다. (범위 지정)
    Direction dir = Direction::UP;
    
    int status = ACTIVE;
}