Megosztás a következőn keresztül:


Fordító figyelmeztetése (4. szint) C4457

az "azonosító" deklarációja elrejti a függvényparamétert

Megjegyzések

A helyi hatókörben az azonosító deklarációja elrejti az azonos nevű függvényparaméter deklarációját. Ez a figyelmeztetés tudatja Önvel, hogy a helyi hatókörben lévő azonosítóra való hivatkozások a helyileg deklarált verzióra, nem pedig a paraméterre kerülnek, ami lehet, hogy nem az Ön szándéka. A probléma megoldásához javasoljuk, hogy adjon meg olyan helyi változóneveket, amelyek nem ütköznek a paraméternevekkel.

Example

Az alábbi példa azért hozza létre a C4457-et, mert a paraméter x és a helyi változó xmember_fn neve megegyezik. A probléma megoldásához használjon különböző neveket a paraméterekhez és a helyi változókhoz.

// 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;