Я просто не могу выиграть с заголовками, кажется.
У меня есть класс Log
, в котором есть заголовок Log.h, который определяет класс Log
, а затем Log.cpp реализует методы Log
. Мне нужно, чтобы он был доступен в Main.cpp, поэтому я включаю Log.h в Main.cpp и получаю пресловутые «уже определенные» ошибки.
Если я вытащу заголовок из Main.cpp, я не смогу использовать класс.
Если я удалю заголовок из Log.cpp, то Log (очевидно) не определен.
Я не могу выиграть здесь! Что мне делать?
РЕДАКТИРОВАТЬ ДА, конечно, у меня есть охранники.
#ifndef LOG_H_
#define LOG_H_
namespace vexal {
#define CCOL_RESET "^[[0m"
#define CCOL_RED "^[[31m"
class Log {
public:
Log();
virtual ~Log();
static void genInstance();
private:
static Log* _inst;
};
}
#endif /* LOG_H_ */
Тогда включения просто #include "Log.h"
в обоих файлах Log.cpp и Main.cpp.