在.cpp文件中使用类的静态成员

时间:2012-04-02 22:31:56

标签: c++ class static fatal-error

我创建了一个类,在公共部分中,我声明了以下内容:

static int num;

并且在构造函数中,我在同一个.h文件中:

num++;

到目前为止一切正常。

问题是,我的析构函数的实现是在.cpp中,我写道:

num--;

但视觉不会让我这样做。它喊道:

  

致命错误LNK1120:1个未解析的外部

任何帮助?

1 个答案:

答案 0 :(得分:3)

您必须在* .cpp文件中定义静态变量。这通常在顶部完成。例如:

// in the *.h file
class MyClass
{
    public:
        static int num;
        MyClass();
        ~MyClass();
};

// in the *.cpp file
int MyClass::num = 0;

MyClass::MyClass()
{
    MyClass::num++;
}

MyClass::~MyClass()
{
    MyClass::num--;
}