我目前正在开发一个使用旧版VS2008的学校项目,几乎没有任何错误帮助。无论如何,我试图了解Singeltons并试图创建基本的东西。但是我突然间突然出错了。我是盲人还是我做错了什么? 错误:
1>.\Source\Singelton.cpp(3) : error C2065: 'NULL' : undeclared identifier
1>.\Source\Singelton.cpp(12) : error C2065: 'NULL' : undeclared identifier
1>.\Source\Singelton.cpp(21) : error C2065: 'NULL' : undeclared identifier
1>.\Source\Singelton.cpp(26) : error C2065: 'value' : undeclared identifier
1>.\Source\Singelton.cpp(30) : error C2065: 'value' : undeclared identifier
完整代码: 头:
#ifndef __SINGELTON_H__
#define __SINGELTON_H__
class Singelton
{
private:
static Singelton* instance;
Singelton();
int value;
public:
~Singelton();
int get_value();
void set_value(int v);
static Singelton* getInstance();
};
#endif
的.cpp
#include "Singelton.h"
Singelton* Singelton::instance = NULL;
Singelton::Singelton()
{
value=0;
}
Singelton* Singelton::getInstance()
{
if (instance == NULL)
{
instance = new Singelton();
}
return instance;
}
Singelton::~Singelton()
{
instance = NULL;
}
int get_value()
{
return value;
}
void set_value(int v)
{
value=v;
}
答案 0 :(得分:0)
error C2065: 'NULL' : undeclared identifier
您尚未加入<cstddef>
,其中定义了NULL
。
error C2065: 'value' : undeclared identifier
您在定义成员函数时忘记包含类名,因此声明了新的非成员函数:
int Singelton::get_value()
{// ^^^^^^^^^^^
return value;
}
您还应该正确拼写“单身人士”并避免像__SINGELTON_H__
这样的reserved names。希望你很快就会被教导为什么单身人士在一般情况下是一个坏主意,而在C ++中则更是如此。看看here,万一你的老师忘记了这一点。