共用方式為


編譯器警告 (層級 4) C4456

' identifier ' 宣告會隱藏先前的本機宣告

本機範圍中識別碼 宣告會隱藏相同名稱上一個本機宣告的宣告。 此警告可讓您知道本機範圍中識別碼 的參考 會解析為本機宣告的版本,而不是先前的本機,這可能不是您的意圖。 若要修正此問題,建議您提供與其他本機名稱不衝突的區域變數名稱。

範例

下列範例會產生 C4456,因為 中的迴圈控制項變數 int x 和 局部 member_fn 變數 double x 具有相同的名稱。 若要修正此問題,請針對區域變數使用不同的名稱。

// C4456_hide.cpp
// compile with: cl /W4 /c C4456_hide.cpp

struct S {
    void member_fn(unsigned u) {
        double x = 0;
        for (int x = 0; x < 10; ++x) {  // C4456
            u += x; // uses local int x
        }
        x += u; // uses local double x
    }
} s;