Partilhar via


Aviso C26495

A variável "variable" não é inicializada. Sempre inicialize uma variável de membro (type.6).

Comentários

Uma variável de membro não é inicializada por um construtor ou por um inicializador. Verifique se todas as variáveis estão inicializadas até o final da construção. Para obter mais informações, consulte as Diretrizes Principais do C++ Type.6 e C.48.

Essa verificação é intraprocessual. Sempre que houver uma chamada de função para uma função de membro não const, a verificação pressupõe que essa função de membro inicializa todos os membros. Essa heurística pode resultar em erros perdidos e está em vigor para evitar resultados falsos positivos. Além disso, quando um membro é passado por referência nonconst a uma função, a verificação assume que a função inicializa o membro.

Nome da análise de código: MEMBER_UNINIT

Exemplo

O exemplo a seguir gera um aviso C26495 porque a variável de membro value não é inicializada quando um objeto MyStruct é criado.

struct MyStruct
{
    int value;
    MyStruct() {} // C26495, MyStruct::value is uninitialized
};

Para resolver o problema, você pode adicionar a inicialização na classe a todas as variáveis de membro.

struct MyStruct
{
    int value{};  // empty brace initializer sets value to 0
    MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};

Confira também

C26494