반응형
C++에서 열거형(enumeration)은 열거된 상수 값들의 집합을 정의하는 데 사용되는 사용자 정의 데이터 타입입니다. 열거형을 사용하면 코드의 가독성과 유지보수성을 높일 수 있습니다. 각 열거형 값은 기본적으로 정수형 값을 가지며, 첫 번째 값은 0부터 시작하고 이후 값들은 순차적으로 1씩 증가합니다. 물론, 원하는 경우 특정 값을 직접 지정할 수도 있습니다.
열거형 기본 문법
enum 열거형이름 { 값1, 값2, 값3 }; |
예제: 요일 열거형 정의
#include <iostream>
using namespace std;
enum Weekday {
Sunday, // 0
Monday, // 1
Tuesday, // 2
Wednesday, // 3
Thursday, // 4
Friday, // 5
Saturday // 6
};
int main() {
Weekday today = Monday;
if (today == Monday) {
cout << "Today is Monday!" << endl;
}
// 열거형 값을 정수로 출력
cout << "Sunday is " << Sunday << endl;
cout << "Friday is " << Friday << endl;
return 0;
}
(Output)
Today is Monday!
Sunday is 0
Friday is 5
값 직접 지정하기
열거형 값은 기본값 외에 원하는 값으로 지정할 수도 있습니다.
enum Color { Red = 1, Green = 5, Blue = 10 }; |
위 코드에서 Red는 1, Green은 5, Blue는 10의 값을 가집니다.
클래스 기반 열거형(enum class)
C++11부터는 enum class라는 새로운 열거형이 추가되었습니다. enum class는 네임스페이스와 비슷한 역할을 하여 같은 이름을 가진 다른 열거형 값들과 충돌하는 것을 방지합니다.
#include <iostream>
using namespace std;
enum class Direction {
North,
South,
East,
West
};
int main() {
Direction dir = Direction::North;
if (dir == Direction::North) {
cout << "Heading North!" << endl;
}
return 0;
}
enum과 enum class의 차이점
- enum은 전역적으로 접근이 가능하지만, enum class는 반드시 열거형 이름을 명시하여 접근해야 합니다.
- enum은 암시적으로 정수형으로 변환될 수 있지만, enum class는 명시적으로 변환해야 합니다.
C++에서 열거형을 사용하면 코드의 의미를 더 명확하게 하고, 잘못된 값을 사용하지 않도록 제한할 수 있어 유용합니다.
반응형
'C_C++' 카테고리의 다른 글
C++, 클래스 기초: 자동차 클래스를 상속한 전기차 (0) | 2024.10.20 |
---|---|
C++, 공용체 (union) 개요 (0) | 2024.10.17 |
c++ typedef, 기존 자료형에 새로운 이름 부여 (0) | 2024.10.12 |
c++ 구조체 struct (0) | 2024.10.10 |
C++ 함수 템플릿(Function Template) (0) | 2024.10.06 |