Delen via


Compilerwaarschuwing (niveau 4) C4458

declaratie van 'id' verbergt klasselid

Opmerkingen

De declaratie van identifier in de lokale scope verbergt de declaratie van de identiek benoemde identifier in de class scope. Deze waarschuwing laat u weten dat verwijzingen naar identifier in dit bereik worden omgezet in de lokaal gedeclareerde versie, niet de klasselidversie, wat mogelijk niet uw intentie is. Om dit probleem op te lossen, raden we u aan lokale variabelennamen te geven die niet conflicteren met namen van klasseleden.

Example

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

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