成员变量不是由构造函数或初始化表达式初始化的。 请确保所有变量在构造结束时初始化。 有关详细信息,请参阅 C++ Core Guidelines Type.6 C.48

此检查属于程序内检查。 每当发生对非常量成员函数的函数调用时,检查将假定此成员函数会初始化所有成员。 这种启发式方法可能会导致遗漏错误,并已到位以避免误报结果。 此外,在通过对函数进行非常量引用来传递成员时,检查会假定该函数会初始化该成员。

代码分析名称: MEMBER_UNINIT

下面的示例生成警告 C26495,因为创建 MyStruct 对象时未初始化成员变量 value

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