Visual Studio의 C++ 파일에 windows.h가 포함되어 있으면 STANDARD_RIGHTS_ALL이라는 전역 식별자가 정의됩니다. 그 이름을 내가 만드는 클래스의 정적 멤버 변수 이름으로 사용하고 싶습니다. 나는 다음과 같이정적 멤버 이름으로 전역 변수 이름을 바꿉니다.
int ACLAmigo::STANDARD_RIGHTS_ALL = 1;
...이있는 다른 파일에 나중에 ...
class ACLAmigo
{
public:
static int STANDARD_RIGHTS_ALL;
ACLAmigo(void);
~ACLAmigo(void);
};
을 그것을 시도하지만 IDE는 thusly 히 불만 : "오류 : 예상 식별자를".
질문 : 이미 선언 된이 식별자 STANDARD_RIGHTS_ALL을 멤버 변수 이름으로 사용할 수 있습니까?
STANDARD_RIGHTS_ALL은 (는) 아마도 매크로입니다. #undef 수 있지만 문제를 요구할 수 있습니다. –
실제로 "#define STANDARD_RIGHTS_ALL (0x001F0000L)"입니다. 매크로 이름을 사용하여이 변수에 내 변수를 설정하려고하기 때문에 실제로는 정의 할 수 없습니다 (#define은 매크로입니다). 내 변수 이름 앞에 밑줄을 추가하면 작동합니다. 내가해야만한다면 나는 그걸로 살아갈 것이다. 그러나 그렇게하지 않는 것이 좋을 것이다. –
그 문제를 다루는 답변을 추가했습니다. –