부모와 자식이 namespace다르고 자식에서 부모 객체 사용시 namespace로 인한 error C2065

namespace State
{
class State
...
}

namespace GameState
{
calss InitState : public State::State
...
}

이렇게 되있었고

사용은

namespace GameState
{
...
void
InitState::EndFrame()
{
   State::State* pState =
...
}
}

이런식이었는데 error C2065: 'pState' : 선언되지 않은 식별자입니다. 라는 컴파일 에러가 나오더군요.

뭐지? 하고 왜 선언이 안되었다는 거야!! InitState.h 에 State.h 도 include 되있는데...

해결은 State::State를 그냥 State로 해주니 되더군요.

namespace GameState 안에 있어서 State::State 해줬더니만 부모 상속 받을때만 namespace를 명시적으로 해주고 cpp에서 사용할 때는 그냥 객체만 해줘도 되는 모양입니다. 뭐 조만간에 State객체의 namespace를 GameState로 바꾸긴 할꺼지만...자세한 c++ 메커니즘은 몰라서;;; 멀고도 험한 c++의 세계~

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.