Возможно, ваш файл заголовка определяется несколько раз (это тот случай, если несколько файлов including
это файл заголовка. Попробуйте добавить защиту вокруг файла заголовка, чтобы он не был переопределен, если он уже был определен один раз.
В зависимости от вашего компилятора C ++, вы можете просто добавить #pragma once
в качестве первой строки в вашем файле, например,
#pragma once
class Logger
{
public:
/// Return the singleton instance of Logger
static Logger& GetInstance() {
static Logger s_loggerSingleton;
return s_loggerSingleton;
}
private:
/// Constructor
Logger();
/// Destructor
~Logger();
}
Предполагаемый эффект - это эффект самой общей альтернативы, который заключается в добавлении макроопределения, подобного этому
#ifndef LOGGER_H
#define LOGGER_H
class Logger
{
public:
/// Return the singleton instance of Logger
static Logger& GetInstance() {
static Logger s_loggerSingleton;
return s_loggerSingleton;
}
private:
/// Constructor
Logger();
/// Destructor
~Logger();
}
#endif LOGGER_H