Upozornění C26495
Proměnná proměnná proměnná není inicializována. Vždy inicializovat členovou proměnnou (typ.6).
Poznámky
Členské proměnné nejsou inicializovány konstruktorem ani inicializátorem. Ujistěte se, že jsou všechny proměnné inicializovány na konci konstrukce. Další informace najdete v tématu C++ Core Guidelines Type.6 a C.48.
Tato kontrola je uvnitř procesu. Při každém volání funkce pro nekonkonstovou členskou funkci se při kontrole předpokládá, že tato členská funkce inicializuje všechny členy. Tato heuristika může vést k chybám, které se vynechaly, a je na místě, aby se zabránilo falešně pozitivním výsledkům. Navíc, pokud je člen předán nekonkonst odkaz na funkci, kontrola předpokládá, že funkce inicializuje člen.
Název analýzy kódu: MEMBER_UNINIT
Příklad
Následující ukázka vygeneruje upozornění C26495, protože při vytvoření objektu není inicializována MyStruct
členová proměnnávalue
.
struct MyStruct
{
int value;
MyStruct() {} // C26495, MyStruct::value is uninitialized
};
Pokud chcete tento problém vyřešit, můžete do všech členských proměnných přidat inicializaci třídy.
struct MyStruct
{
int value{}; // empty brace initializer sets value to 0
MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};