共用方式為


編譯器警告 (層級 4) C4457

' identifier ' 宣告會隱藏函式參數

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

範例

下列範例會產生 C4457,因為 中的 member_fn 參數 x 和區域變數 x 具有相同的名稱。 若要修正此問題,請針對參數和區域變數使用不同的名稱。

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

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