작성
·
30
0
모든 싱글톤 객체들을 DECLARE_SINGLE와 같은 형태로 define하여 편하게 작업하고 있는데,
매니저 cpp파일의 전역에 TimeManager* TimeManager::s_instance = nullptr;와 같은 형태로 정의 해놓지 않으면 작동이 되지 않습니다. DECLARE_SINGLE()에서 링커 오류가 납니다
하지만 영상속엔 이런 내용이 없는데 따로 설정 방법이 있는건가요 ?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
서버공부중님, Windows API에서 싱글톤 패턴을 정의할 때 발생하는 링커 오류에 대해 질문해 주셨군요.
싱글톤 패턴을 사용할 때, 클래스의 정적 멤버 변수를 정의하지 않으면 링커 오류가 발생하는 경우가 있습니다. 질문해주신 내용대로 TimeManager* TimeManager::s_instance = nullptr;
와 같은 형태로 cpp 파일에서 정적 멤버 변수 s_instance
를 명시적으로 정의해야 하는 것이 일반적인 방법입니다.
영상에서 별도의 언급이 없었던 이유는, 일반적으로 C++에서 싱글톤 패턴을 구현할 때 정적 멤버 변수를 cpp 파일에서 명시적으로 정의하는 것이 기본적인 단계로 알려져 있기 때문일 수 있습니다.
혹시 영상을 다시 확인해 보시거나, 해당 강의의 지식공유자님께 직접 질문을 남겨 보시는 것을 추천드립니다. 궁금한 점은 수강 전 문의 게시판을 활용하시면 더 구체적인 답변을 얻을 수 있을 것입니다.
추가적인 도움이 필요하시면 언제든지 말씀해 주세요!