[질문] C++ 생성자에서 초기값 줄때 warning 메세지 도와주세요
글쓴이: oruddk / 작성시간: 화, 2006/02/07 - 11:30오전
클래스의 생성자에서 다음과 같이
Log::Log (bool debugFlag, bool appFlag, bool rawFlag) : debugFlag_ (debugFlag), appFlag_ (appFlag), rawFlag_ (rawFlag) {}
클래스 멤버에 초기값을 주려고 합니다.
컴파일 하면 다음과 같은 warning 이 나오는 데요
Log.h: In constructor `Log::Log(bool, bool, bool)': Log.h:102: warning: `Log::debugFlag_' will be initialized after Log.h:100: warning: `bool Log::appFlag_' Log.cpp:114: warning: when initialized here
생성자에서 초기값을 줄때 다른 방법이 있는 건지 궁금합니다.
그럼 모두 좋은 하루되세요^^
Forums:
초기화 리스트의 순서는 debugFlag_, appFlag_, rawFl
초기화 리스트의 순서는 debugFlag_, appFlag_, rawFlag_의 순서인데,
이들 멤버 변수가 선언된 순서가 다르기 때문인 듯 합니다. 주의할 것은 초기화
순서는 초기화 리스트의 순서가 아니라 멤버 선언 순서로 되는데, 경우에 따라
이들 차이로 인해 미묘한 문제가 발생할 수 있기 때문에 경고를 주는 것입니다.
멤버 선언 순서와 초기화 리스트의 순서를 일치시키는 것이 바람직한 스타일입니다.
좋은 정보 감사합니다.멤버선언 순서를 수정했더니 컴파일 잘되네요
좋은 정보 감사합니다.
멤버선언 순서를 수정했더니 컴파일 잘되네요
좋은하루되세요
댓글 달기