Kompilatorvarning (nivå 4) C4458

deklarationen för "identifier" döljer klassmedlem

Anmärkningar

Deklarationen av identifierare i det lokala omfånget döljer deklarationen av den identiskt namngivna identifieraren i klassomfånget. Den här varningen låter dig veta att referenser till identifierare i det här omfånget matchar den lokalt deklarerade versionen, inte klassmedlemsversionen, vilket 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 klassmedlemsnamn.

Example

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

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

struct S {
    int x;
    float y;
    void member_fn(long x) {   // C4458
        double y;  // C4458
        y = x;
        // To fix this issue, change the parameter name x
        // and local name y to something that does not
        // conflict with the data member names.
    }
} s;