可能重复:
What does it mean to have an undefined reference to a static member?
目前我有以下代码 文件:TestClass.h
class TestClass
{
private:
int i;
static TestClass* TClass;
public:
static TestClass* GetClass()
{
if(TClass==NULL)
{
TClass = new TestClass();
return TClass;
}
else
{
return TClass;
}
}//end method
int Geti()
{
return i;
}
void Seti(int a)
{
i = a;
}
};
现在,在将标题包含为
之后,我的cpp文件中有了一个方法declspec(dllexport) int __stdcall GetVar()
{
TestClass *TClass = TestClass::GetClass();
return TClass->Geti();
}
我得到的错误是:
Error 8 error LNK2001: unresolved external symbol "private: static class TestClass * TestClass::TClass" (?TClass@TestClass@@0PEAV1@EA)
答案 0 :(得分:2)
你宣布但未定义你的静态成员
TestClass* TClass;
在.cpp文件中启动:
TestClass* TestClass::TClass=NULL;