Необъявленный идентификатор в VS 2008 - Singelton (очень простой)

0

В настоящее время я работаю над школьным проектом, который использует старый 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

Полный код: header:

#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
    Добавить #include <stdlib.h>
  • 1
    И добавьте область видимости в get_value и set_value ( int Singleton::get_value() ).
Показать ещё 3 комментария
Теги:
int
null
visual-studio-2008

1 ответ

0
Лучший ответ
error C2065: 'NULL' : undeclared identifier

Вы не включили <cstddef>, который определяет NULL.

error C2065: 'value' : undeclared identifier

Вы забыли включить имя класса, когда вы определили функции-члены, поэтому вместо этого объявили новые функции, не являющиеся членами:

int Singelton::get_value()
{// ^^^^^^^^^^^
    return value;
}

Вы также должны правильно __SINGELTON_H__ "singleton" и избегать зарезервированных имен, таких как __SINGELTON_H__. Надеюсь, вас скоро научат, почему одиночные игры - плохая идея в целом, и вдвойне в C++. Посмотрите здесь, если ваш учитель забудет об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню