Kompilatorvarning (nivå 4) C4457

deklaration av "identifierare" döljer funktionsparameter

Anmärkningar

Deklarationen av identifierare i det lokala omfånget döljer deklarationen för den identiskt namngivna funktionsparametern. Den här varningen låter dig veta att referenser till identifierare i det lokala omfånget matchar den lokalt deklarerade versionen, inte parametern, som kanske eller kanske inte är din avsikt. För att åtgärda det här problemet rekommenderar vi att du ger namn på lokala variabler som inte är i konflikt med parameternamn.

Example

I följande exempel genereras C4457 eftersom parametern x och den lokala variabeln x i member_fn har samma namn. Åtgärda problemet genom att använda olika namn för parametrarna och lokala variabler.

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