C++ 열거체 소개 | C++ 자습서 11

C++ 열거체

열거체는 사용자가 정의한 기호 상수를 만드는 방법입니다. 이들의 본질은 정수입니다. 열거체의 요소는 0부터 1, 2, 3, 4 이렇게 증가하는 값을 가지고 있습니다.

코드를 보면 변수를 지정하는 것 같습니다만 사실은 상수를 만드는 것 입니다.

굳이 열거체를 사용하지 않더라도 변수와 상수를 사용해서 같은 코드를 작성할 수 있지만 이렇게 모으는 이유는 의미를 부여하기 위해서 입니다.

아래 예제 코드에서는 myEnum에 과일 이름의 상수들을 만들었습니다. 이들은 실제로는 정수인 상수들입니다. myEnum 이라는 하나의 데이터 형이 생겨나는 것과 같습니다. 이 안의 요소에 없는 값을 사용하려 하면 컴파일 에러가 납니다.

#include <iostream>

using std::cout;
using std::endl;

enum myEnum
{
    apple,
    orange,
    kiwi,
    pineapple,
    mango,
    strawberry
};

int main()
{

    myEnum myFavorite = orange;
    myEnum secondFavorite(kiwi);
    myEnum justFavorite(mango);

    cout << orange << endl;
    cout << myFavorite << endl;
    cout << secondFavorite << endl;
    cout << justFavorite << endl;

   return 0;
}
1
1
2
4

명시적으로 값을 지정

열거체에의 요소를 열거자라고 합니다. 열거자에는 자동으로 0부터 정수가 할당되지만 개별적으로 값을 지정할 수가 있습니다. 열거체를 정의할 때 개별값에 대입을 하면 값이 지정됩니다.

#include <iostream>

using std::cout;
using std::endl;

enum myEnum
{
    BLACK = 0,
    WHITE = 1,
    RED = 2,
    GREEN = 3,
    BLUE = 4
};

int main()
{
    cout << "- BLACK : " << BLACK << endl;
    cout << "- WHITE : " << WHITE << endl;
    cout << "- RED : " << RED << endl;
    cout << "- GREEN : " << GREEN << endl;
    cout << "- BLUE : " << BLUE << endl;

    myEnum myVar1 = RED;
    myEnum myVar2 = GREEN;
    myEnum myVar3 = BLUE;

    cout << myVar1 << endl;
    cout << myVar2 << endl;
    cout << myVar3 << endl;

   return 0;
}
- BLACK : 0
- WHITE : 1
- RED : 2
- GREEN : 3
- BLUE : 4
2
3
4

또한 위 코드에서 보는 것 처럼 열거자 BLACK , WHITE 등은 이미 상수로 사용이 가능합니다. 다른 상수들과 이름에 충돌이 일어나지 않도록 주의합니다.

요약

간단하게 C++ 열거체에 대하여 알아봤습니다.

C++에서 상수를 정의하는 방법은 이외에도 #define 이나 const 가 있습니다. 코드 자체는 어떻게 짜더라도 기능만 맞으면 잘 돌아가겠지만 어떤 때 사용해야할지 판단은 스스로 해야합니다.

그러기 위해서는 C++의 특성에 대해서 최대한 많이 알아두면 좋을 것 입니다.

언제나 처럼 추천하는 것은 영문 튜토리얼 문서들을 읽어나가며 자신의 코드를 쌓아두는 것 입니다. 기초학습을 할 때는 따라하지만 말고 꼭 자신의 코드로 다시 고쳐쓰고 그 코드를 잘 보관하는 것이 좋습니다. 허접하더라도 깃허브에 올려도 좋습니다. 대신 정리를 잘해서 올려야 필요할 때 찾기가 편합니다.

코드 조각들 하나하나가 모여서 나중에 위력을 발휘하는 날이 옵니다. 이 코딩은 하나 두개의 기술만 알아서는 큰 의미가 없지만 그 테크닉 수천개들이 체화가 되면 위력을 발휘하기 시작합니다.

끓임없이 좋은 문서를 많이 읽고 자신의 코드로 정리하는 습관을 들이는게 좋습니다.

참고문서

C++ Enumeration (programiz.com)

How to use enums in C++? (tutorialspoint.com)

Enumeration in C++ (beginnersbook.com)

8.2 — Enumerated types | Learn C++ (learncpp.com)

참고영상

ENUMS in C++ 열거체 – YouTube

Leave a Comment