VS 2008中未声明的标识符 - Singelton(非常基本)

时间:2013-11-26 15:02:07

标签: c++ visual-studio-2008 null int undeclared-identifier

我目前正在开发一个使用旧版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;
}

1 个答案:

答案 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,万一你的老师忘记了这一点。