警告 C26495
變數 ' variable ' 未初始化。 一律初始化成員變數 (type.6)。
備註
成員變數不是由建構函式或初始化運算式初始化。 請確定所有變數都會在建構結束時初始化。 如需詳細資訊,請參閱 C++ 核心指導方針 Type.6 和 C.48 。
這項檢查是程式內檢查。 每當有非const 成員函式的函式呼叫時,檢查會假設此成員函式會初始化所有成員。 此啟發學習法可能會導致遺漏錯誤,並已就緒以避免誤判結果。 此外,當成員由非常數參考傳遞至函式時,檢查會假設函式會初始化成員。
程式碼分析名稱: 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
};