Avviso C26495
La variabile 'variable' non è inizializzata. Inizializzare sempre una variabile membro (tipo.6).
Osservazioni:
Una variabile membro non viene inizializzata da un costruttore o da un inizializzatore. Assicurarsi che tutte le variabili vengano inizializzate entro la fine della costruzione. Per altre informazioni, vedere C++ Core Guidelines Type.6 e C.48.
Questo controllo è intra-procedurale. Ogni volta che è presente una chiamata di funzione a una funzione membro nonconst, il controllo presuppone che questa funzione membro inizializzi tutti i membri. Questa euristica può causare errori mancanti ed è in atto per evitare risultati falsi positivi. Inoltre, quando un membro viene passato da un riferimento nonconst a una funzione, il controllo presuppone che la funzione inizializzi il membro.
Nome dell'analisi del codice: MEMBER_UNINIT
Esempio
L'esempio seguente genera l'avviso C26495 perché la variabile value
membro non viene inizializzata quando viene creato un MyStruct
oggetto .
struct MyStruct
{
int value;
MyStruct() {} // C26495, MyStruct::value is uninitialized
};
Per risolvere il problema, è possibile aggiungere l'inizializzazione in classe a tutte le variabili membro.
struct MyStruct
{
int value{}; // empty brace initializer sets value to 0
MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};