Condividi tramite


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
};

Vedi anche

C26494