Delen via


Compilerwaarschuwing (niveau 4) C4457

declaratie van id verbergt functieparameter

Opmerkingen

De declaratie van id in het lokale bereik verbergt de declaratie van de identieke functieparameter. Deze waarschuwing laat u weten dat verwijzingen naar id in het lokale bereik worden omgezet in de lokaal gedeclareerde versie, niet de parameter, die mogelijk of niet uw intentie is. Om dit probleem op te lossen, raden we u aan lokale variabelen namen te geven die niet conflicteren met parameternamen.

Example

In het volgende voorbeeld wordt C4457 gegenereerd omdat de parameter x en de lokale variabele x dezelfde member_fn namen hebben. U kunt dit probleem oplossen door verschillende namen te gebruiken voor de parameters en lokale variabelen.

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