enum은 열거형 타입으로, 관련된 상수 집합을 정의하는 데 유용
1. 기본적인 enum 사용
cpp
enum Color {
RED,
GREEN,
BLUE
};
위와 같이 Color라는 이름의 열거형을 정의할 수 있습니다. 기본적으로 RED는 0, GREEN은 1, BLUE는 2의 값을 가집니다.
2. 특정 값 할당
각 상수에 특정 값을 할당할 수 있습니다.
cpp
enum Status {
SUCCESS = 0,
ERROR = 1,
PENDING = 2
};
3. enum class 사용
C++11부터 도입된 enum class를 사용하면 더 강력한 형식 안전성을 제공합니다. 같은 이름의 열거형이 다른 enum class에 있을 수 있습니다.
cpp
enum class Direction {
NORTH,
SOUTH,
EAST,
WEST
};
// 사용 예
Direction dir = Direction::NORTH;
4. 스코프와 타입 안전성
enum class는 스코프를 가지므로, 다른 열거형과 이름이 충돌하지 않습니다. 또한, 기본적으로 정수형과의 암시적 변환이 불가능하여 타입 안전성을 높입니다.
cpp
if (dir == Direction::NORTH) {
// 처리 로직
}
5. 비트 플래그로 사용
enum을 비트 플래그로 사용하면 여러 상태를 조합할 수 있습니다.
cpp
enum class FilePermissions {
READ = 1 << 0, // 1
WRITE = 1 << 1, // 2
EXECUTE = 1 << 2 // 4
};
// 비트 연산을 통한 조합
FilePermissions permissions = FilePermissions::READ | FilePermissions::WRITE;
6. 함수와 함께 사용
enum을 함수의 매개변수로 사용할 수 있습니다. 이를 통해 가독성을 높이고 코드의 의도를 명확히 할 수 있습니다.
cpp
void setColor(Color color) {
// 색상 설정 로직
}
setColor(RED);
7. enum의 문자열 변환
enum 값을 문자열로 변환하거나 그 반대의 작업을 수행하는 헬퍼 함수를 만드는 것이 유용합니다.
cpp
std::string colorToString(Color color) {
switch (color) {
case RED: return "Red";
case GREEN: return "Green";
case BLUE: return "Blue";
default: return "Unknown";
}
}
'반도체 > C++' 카테고리의 다른 글
클래스 잘쓰는법 (0) | 2024.12.04 |
---|---|
38. C++ 화살표 연산자 (0) | 2024.09.04 |
36. C++에서 배열과 포인터 관계 (0) | 2024.09.03 |
35. C++에서의 포인터 개념 (0) | 2024.09.03 |
34.1 사원 관리 프로그램 추가 C++ (0) | 2024.09.03 |