Freigeben über


Warnung C26495

Variable 'Variable' ist nicht initialisiert. Initialisieren Sie immer eine Membervariable (type.6).

Hinweise

Eine Membervariable wird nicht von einem Konstruktor oder einem Initialisierer initialisiert. Stellen Sie sicher, dass alle Variablen am Ende der Konstruktion initialisiert werden. Weitere Informationen finden Sie unter C++ Core Guidelines Type.6 und C.48.

Diese Überprüfung ist intraprozedural. Wenn es einen Funktionsaufruf für eine nichtconst-Memberfunktion gibt, wird bei der Überprüfung davon ausgegangen, dass diese Memberfunktion alle Member initialisiert. Diese Heuristik kann zu verpassten Fehlern führen und ist vorhanden, um falsche positive Ergebnisse zu vermeiden. Wenn ein Element von einem Nichtkonstverweis auf eine Funktion übergeben wird, geht die Prüfung darüber hinaus davon aus, dass die Funktion das Element initialisiert.

Codeanalysename: MEMBER_UNINIT

Beispiel

Im folgenden Beispiel wird die Warnung C26495 generiert, da die Membervariable value beim Erstellen eines MyStruct Objekts nicht initialisiert wird.

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

Um das Problem zu beheben, können Sie die Initialisierung der Klasse allen Membervariablen hinzufügen.

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

Siehe auch

C26494