Я пытаюсь написать синглтон на С++, но получаю ошибку LNK2019:
Код серьезности Описание Ошибка строки файла проекта LNK2019 неразрешенный внешний символ "private: __thiscall DBWriter::DBWriter(void)" (??0DBWriter@@AAE@XZ), на который ссылается функция "public: static class DBWriter * __cdecl DBWriter::getInstance(void) )" (?getInstance@DBWriter@@SAPAV1@XZ) ИЛИСравнить
Может ли кто-нибудь помочь мне найти мою ошибку?
Вот ч. файл:
#pragma once
#ifndef DBWRITER
#define DBWRITER
class DBWriter
{
public:
~DBWriter();
static DBWriter* getInstance();
private:
DBWriter();
static DBWriter *dbwriter;
};
#endif //DBWRITER
и файл .cpp:
#include "DBWriter.h"
DBWriter * DBWriter::getInstance()
{
if (dbwriter == NULL)
dbwriter = new DBWriter();
return dbwriter;
}
Буду рад, если кто-нибудь объяснит мне мою ошибку. Спасибо.
dbwriter
? - person πάντα ῥεῖ   schedule 19.02.2017static
элементы должны иметь где-то определение, предпочтительно в исходном файле класса. - person Greg Kikola   schedule 19.02.2017DBWriter *DBWriter::dbwriter = NULL;
в вашем файле .cpp. Это определитDBWriter::dbwriter
. - person Greg Kikola   schedule 19.02.2017