Application/C++

[C++] enum 중복 값 쓰기

devsalix 2022. 12. 22. 12:04
728x90

아래와 같이 코드를 작성하면

 

다른 enum의 변수값인데도 같은 변수명이라는 이유로

 

컴파일에서 에러를 발생시킨다

 

#include <stdio.h>

enum Index
{
	_111,
	_222,
	_333,
	_444,
	MAX
};

enum Index1
{
	_111,
	_222,
	_333,
	_444,
	MAX
};

int main(int argc, char **argv)
{
    return 0;
}

 

이런 에러를 우회하는 방법으로는 namespace를 쓰는 방법이 있다

 

#include <stdio.h>

namespace Type_A
{
	enum Index
	{
		_111,
		_222,
		_333,
		_444,
		MAX
	};
}

namespace Type_B
{
	enum Index
	{
		_111,
		_222,
		_333,
		_444,
		MAX
	};
}

int main(int argc, char **argv)
{
	int idx = Type_A::Index._111;

    return 0;
}

 

위와 같은 방식으로 namespace로 해당 enum의 값을 감싸고

 

사용 시 namespace::enum.변수 방식으로 쓰면 된다

 

728x90
반응형