enum class

2021. 10. 25. 16:34C&C++

C++11에서 기존 enum의 문제점들을 개선한 enum class가 추가되었다.

 

기존 enum과 다른 점은,

1. 기존 enum의 요소들의 전역적인 특징이 사라졌다.

enum class의 요소들은 enum class 안에서만 유효하다.

이로 인해서 enum class의 요소 이름을 다른 enum class나 외부에서 사용할 수 있게 되었다.

 

2. int 등으로의 자동 형변환이 안된다.

기본자료형처럼 쓰고싶다면 명시적으로 형변환을 해주어야한다.

 

#include <iostream>
enum class State {
	idle,
	attack,
	hurt
};
//같은 멤버 OK
enum class EnemyState {
	idle,
	attack,
	hurt
};
int main(void) {
	int idle = 100;
	State s = State::idle;
	if (s == State::attack)
		return 0;
	else if ((int)s == 1) //명시적 형변환
		return 0;
}

 

'C&C++' 카테고리의 다른 글

랜덤을 구현하는 방법  (0) 2021.11.07
#pragma once  (0) 2021.10.25
프로그래밍 팁  (0) 2021.10.19
C언어 volatile  (0) 2021.10.19
컴파일 모드 (릴리즈모드, 디버그모드)  (0) 2021.10.17