我创建了一个类,在公共部分中,我声明了以下内容:
static int num;
并且在构造函数中,我在同一个.h文件中:
num++;
到目前为止一切正常。
问题是,我的析构函数的实现是在.cpp中,我写道:
num--;
但视觉不会让我这样做。它喊道:
致命错误LNK1120: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--;
}