경고 C26495
변수 'variable'은 초기화되지 않습니다. 항상 멤버 변수(type.6)를 초기화합니다.
설명
멤버 변수는 생성자 또는 이니셜라이저에 의해 초기화되지 않습니다. 생성이 끝날 때까지 모든 변수가 초기화되었는지 확인합니다. 자세한 내용은 C++ Core Guidelines Type.6 및 C.48을 참조하세요.
이 검사 절차 내입니다. 비컨스트 멤버 함수에 대한 함수 호출이 있을 때마다 검사 이 멤버 함수가 모든 멤버를 초기화한다고 가정합니다. 이 추론은 누락된 오류를 초래할 수 있으며 가양성 결과를 방지하기 위해 마련되었습니다. 또한 멤버가 함수에 대한 nonconst 참조로 전달되는 경우 검사 함수가 멤버를 초기화한다고 가정합니다.
코드 분석 이름: MEMBER_UNINIT
예시
다음 샘플에서는 개체를 만들 때 멤버 변수 value
가 초기화되지 않으므로 경고 C26495를 MyStruct
생성합니다.
struct MyStruct
{
int value;
MyStruct() {} // C26495, MyStruct::value is uninitialized
};
이 문제를 해결하려면 모든 멤버 변수에 클래스 내 초기화를 추가할 수 있습니다.
struct MyStruct
{
int value{}; // empty brace initializer sets value to 0
MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};