namespace CurrentState { enum Enum { ALLOW_PROGRAM, ALLOW_DLL, DENY_PROGRAM, DENY_DLL, INTERCHANGING = 100 }; } ... CurrentState::Enum CPage2::GetCurrentState(CString line) { static CurrentState::Enum state = CurrentState::ALLOW_PROGRAM; ... return state; }
* 장점
- 열거형의 접두어가 필요없어진다.
- 네임 스페이스에 의해 인텔리센스의 지원을 받을 수 있다.
- 컴파일러에서 하나의 완전한 타입처럼 인식하기 때문에, 발견하기 어려운 버그를 막을 수 있다.
2015.07.24. 추가
C++11 에서 추가된 enum class 를 사용하면 위 같이 namespace를 사용하지 않아도 위에서 열거한 모든 장점들을 얻을 수 있다. 사용 방법은 다음과 같다.
// 선언 enum class CurrentState { ALLOW_PROGRAM, ALLOW_DLL, DENY_PROGRAM, DENY_DLL, INTERCHANGING = 100 }; // 사용 CurrentState state = CurrentState::ALLOW_PROGRAM;
Document
C++
enum
Retrieved from http://hyacinth.byus.net/moniwiki/wiki.php/C++/좀 더 나은 enum 방법
last modified 2016-03-08 23:03:42