Compartir vía


Advertencia C26495

La variable "variable" no está inicializada. Inicialice siempre una variable miembro (Type.6).

Comentarios

Un constructor o un inicializador no inicializa una variable miembro. Asegúrese de que todas las variables se inicializan al final de la construcción. Para obtener más información, vea C++ Core Guidelines Type.6 y C.48.

Esta comprobación es intraproceso. Siempre que haya una llamada de función a una función miembro no const, la comprobación supone que esta función miembro inicializa todos los miembros. Esta heurística puede dar lugar a errores perdidos y está en su lugar para evitar resultados falsos positivos. Además, cuando se pasa un miembro por referencia noconst a una función, la comprobación supone que la función inicializa el miembro.

Nombre del análisis de código: MEMBER_UNINIT

Ejemplo

En el ejemplo siguiente se genera la advertencia C26495 porque la variable miembro value no se inicializa cuando se crea un objeto MyStruct.

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

Para resolver el problema, puede agregar la inicialización de clase a todas las variables miembro.

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

Consulte también

C26494