Jak zainicjować element statyczny
Chcę zainicjować dwa statyczne elementy danych. Zobacz dwa pliki
// Logger.h
class Logger
{
public:
static LoggerConcrete error;
static LoggerConcrete write;
};
i
//Logger.cpp
Logger::error = LoggerConcrete(LOG_DEBUG);
Logger::write = LoggerConcrete(LOG_DEBUG);
Inicjalizacja dwóch statycznych członków w Logger.cpp nie działa. Dostaję następujący błąd kompilatora (g ++):
g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -MMD -MP -MF "Logger.d" -MT "Logger.d" -o "Logger.o" "../Logger.cpp" .. /Logger.cpp:13: error: oczekiwany konstruktor, destruktor lub konwersja typu przed tokenem '=' ../Logger.cpp:14: error: oczekiwany konstruktor, destruktor lub konwersja typu przed znacznikiem '='
Chcę używać Logger :: write i Logger :: error w każdej klasie, w której włączam Logger.h. Jak mam zainicjować tych dwóch członków?