Enum Type: 이름으로 값 구분
Enum Type의 객체는 Enum 값 중 하나만 가질 수 있다
Enum 값은 integral 타입이다.
값이 할당되지 않은 Enumerator는 자동으로 첫번째 enumerator가 0이 된다.
unscoped enum의 예)
enum Suit {
Clubs, Diamonds, Hearts, Spades
};
Suit suit = Clubs;
enum Suit {
Clubs = 1, Diamonds = 2, Hearts = 4, Spades = 8
};
Scoped Enumeration은 unscoped Enumeration과 비슷하지만 다음 점이 다르다:
- 모든 enumerator가 자기 자신 스코프에 있어야 한다
- integral type이 값으로 사용된다
- 변환이 더 엄격하다. 타입 안전하다.
class 또는 struct 키워드가 enum 다음에 붙으면, 그 enumeration은 scoped enumeration이 된다.
범위 해소 연산자(scope resolution operator) :: 가 enumerator의 접근에 사용된다.
일반적으로 scoped enumeration이 unscoped enumeration 보다 선호된다.
enum struct Season {
spring, summer, fall, winter
};
enum struct Suit : unsigend char {
clubs, diamonds, hearts, spades
};
Season season = Season::summer;
Suit suit = Suit::spades;
'C++' 카테고리의 다른 글
[C++] 참조 (1) | 2023.11.22 |
---|---|
[C++] 포인터 (2) | 2023.11.22 |
[C++] 선언과 정의 (1) | 2023.11.22 |
[C++] g++ 사용법 및 g++ 옵션들 (1) | 2023.11.22 |
Windows에 gcc 설치하기 (0) | 2023.11.08 |