범위가 정해진 열거
class Stock
{
public:
Stock(int x);
~Stock();
private:
enum aa
{
egg, fire, gun
};
enum bb
{
egg, fire, gun
};
};
다음과 같을 때 이미 aa에서의 내용들이 선언되어 있기 때문에 bb에서는 선언하지 못한다.
enum class
class Stock
{
public:
Stock(int x);
~Stock();
private:
enum class aa
{
egg, fire, gun
};
enum class bb
{
egg, fire, gun
};
};
- enum class를 사용하면 열거자에게 클래스 범위를 갖게하여 선언이 겹치지 않게 할 수 있다.
- class 대신 struct를 사용할 수도 있다.
- 사용할 때는 enum이름을 명시해야한다. aa::egg, bb::fire
타입 전환과 명시적 형변환
enum aa
{
egg, fire, gun
};
enum class bb
{
egg, fire, gun
};
bb s = bb::egg;
int tests = int(s); //허용
int tests = s; //허용되지 않음, 암시적 타입 전환이 아님
aa w = egg;
int tests = w; //허용, 암시적 타입 전환
'C++ > Basic' 카테고리의 다른 글
[C++] 클래스의 데이터형 변환 (0) | 2021.06.25 |
---|---|
[C++] 연산자 오버로딩과 프렌드 (0) | 2021.06.24 |
[C++] 클래스의 초기화, const 멤버 함수 (0) | 2021.06.20 |
객체 지향 프로그래밍 (0) | 2021.06.18 |
[C++] using과 namespace (0) | 2021.06.17 |