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