저는 C++을 처음 사용합니다. 이제 수업을 듣기 시작했고 정적에 멍청한 문제가 있습니다.정적 사용시 해결되지 않은 외부 기호
main.obj : error LNK2001: unresolved external symbol "public: static class Helper* Test::helper" ([email protected]@@[email protected]@A)
내 코드에 어떤 문제가 :
class Test
{
public:
Test(){};
~Test(){};
static void test();
static Helper* helper;
};
void Test::test()
{
Object obj = Test::helper->getObject();
//...
}
나는 그것이 오류를 제공 컴파일 할 때?
링커는 정적'Helper' 멤버의 인스턴스를 찾을 수 없기 때문에 불평합니다. 모든 정적 클래스 멤버는 전역 범위에서 고유하게 정의되어야합니다 (즉, 모든 클래스/구조체 정의를 유지해야합니다). 그래서 당신이'test'에서했던 것처럼'Helper'에 대한 정의를 제공해야합니다. 수락, 링커 오류 메시지는 세계에서 가장 사용자 친화적 인 아니지만 그냥 첫 번째 템플릿 instanciation 오류가 발생할 때까지 기다려주십시오 :) –