链接器错误:未解决的外部符号问题

时间:2013-01-30 01:57:21

标签: c++

  

可能重复:
  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)  

1 个答案:

答案 0 :(得分:2)

你宣布但未定义你的静态成员

TestClass* TClass;

在.cpp文件中启动:

TestClass* TestClass::TClass=NULL;