Поделиться через


Предупреждение C26495

Переменная "переменная" неинициализирована. Всегда инициализировать переменную-член (type.6).

Замечания

Переменная-член не инициализирована конструктором или инициализатором. Убедитесь, что все переменные инициализированы в конце построения. Дополнительные сведения см. в разделе "Основные рекомендации по C++ Type.6 и C.48".

Эта проверка является внутрипроцессной. При каждом вызове функции к неконстной функции-члену проверка предполагает, что эта функция-член инициализирует все члены. Эта эвристика может привести к пропущенным ошибкам и на месте, чтобы избежать ложноположительных результатов. Кроме того, если элемент передается неконстной ссылкой на функцию, проверка предполагает, что функция инициализирует элемент.

Имя анализа кода: MEMBER_UNINIT

Пример

В следующем примере создается предупреждение C26495, так как переменная-член value не инициализирована при MyStruct создании объекта.

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

Чтобы устранить проблему, можно добавить инициализацию класса ко всем переменным-членам.

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

См. также

C26494