Partager via


Avertissement C26495

La variable 'variable' n’est pas initialisée. Initialisez toujours une variable membre (type.6).

Notes

Une variable membre n’est pas initialisée par un constructeur ou par un initialiseur. Vérifiez que toutes les variables sont initialisées à la fin de la construction. Pour plus d’informations, consultez C++ Core Guidelines Type.6 et C.48.

Cette vérification est intra-procédurale. Chaque fois qu’il existe un appel de fonction à une fonction membre nonconst, la vérification suppose que cette fonction membre initialise tous les membres. Cette heuristique peut entraîner des erreurs manquées et est en place pour éviter les faux résultats positifs. De plus, lorsqu’un membre est passé par une référence nonconst à une fonction, la vérification suppose que la fonction initialise le membre.

Nom de l’analyse du code : MEMBER_UNINIT

Exemple

L’exemple suivant génère l’avertissement C26495, car la variable value membre n’est pas initialisée lorsqu’un MyStruct objet est créé.

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

Pour résoudre le problème, vous pouvez ajouter une initialisation de classe à toutes les variables membres.

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

Voir aussi

C26494