Почему C++ не считает реализованным конструктор
У меня есть класс(h) и к нему реализатор(cpp):
#pragma once
#define LOG_WARNING "Warning"
#define LOG_INFORMATION "Info"
#define LOG_ERROR "Error"
#define LOG_WORK "Process"
class Logger
{
public:
Logger();
~Logger();
private:
HANDLE file;
SYSTEMTIME systemTime;
static Logger* inst;
public:
static Logger* Instance() { return inst; }
VOID CreateLogFile();
VOID WriteLog();
};
#include "Engine.h"
#include "Logger.h"
Logger* Logger::inst;
Logger::Logger()
{
inst = this;
}
Logger::~Logger()
{
}
VOID Logger::CreateLogFile()
{
//код
}
VOID Logger::WriteLog()
{
//код
}
Эти файлы находятся в отдельном проекте, но даже подключив их к другому проекту компилятор считает что класс существует а его реализатор нет. В результате этого когда я хочу создать класс и вызвать конструктор при компиляции происходит ошибка
LNK2019 unresolved external symbol "public: __cdecl Logger::Logger(void)" (??0Logger@@QEAA@XZ) referenced in function WinMain
LNK2019 unresolved external symbol "public: __cdecl Logger::~Logger(void)" (??1Logger@@QEAA@XZ) referenced in function WinMain
Источник: Stack Overflow на русском