2009-09-29 6 views
4

정적 데이터 멤버 두 개를 초기화하고 싶습니다. 두 파일정적 멤버를 초기화하는 방법

// Logger.h 

class Logger 
{ 
    public: 
     static LoggerConcrete error; 
     static LoggerConcrete write; 
}; 

//Logger.cpp 

Logger::error = LoggerConcrete(LOG_DEBUG); 
Logger::write = LoggerConcrete(LOG_DEBUG); 

Logger.cpp에있는 두 개의 정적 멤버의시 초기화가 작동하지 않습니다를 참조하십시오. 나는 다음과 같은 컴파일러 (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: expected constructor, destructor, or type conversion before '=' token ../Logger.cpp:14: error: expected constructor, destructor, or type conversion before '=' token

내가 로거를 사용하는 :: 나는 Logger.h을 포함하는 각 클래스에 작성하고 로거 :: 오류합니다. 어떻게이 두 멤버를 초기화해야합니까?

LoggerConcrete Logger::error = LoggerConcrete(LOG_DEBUG); 
LoggerConcrete Logger::write = LoggerConcrete(LOG_DEBUG); 

답변

10

당신은 유형을 지정해야합니다

LoggerConcrete Logger::error(LOG_DEBUG); 
LoggerConcrete Logger::write(LOG_DEBUG); 
+0

yuup을 나는 잊어 버렸습니다. 감사 – Maus

5

당신은이 구문을 사용할 수 있습니다, 조금 더 간결 :

관련 문제