Freigeben über


Compilerwarnung (Ebene 4) C4458

Die Deklaration von "Identifier" blendet das Klassenelement aus.

Die Deklaration des Bezeichners im lokalen Bereich blendet die Deklaration des identisch benannten Bezeichners im Klassenbereich aus. Diese Warnung teilt Ihnen mit, dass Verweise auf den Bezeichner in diesem Bereich auf die lokal deklarierte Version aufgelöst werden, nicht auf die Klassenmemembeversion, die möglicherweise Ihre Absicht ist. Um dieses Problem zu beheben, empfehlen wir, lokale Variablennamen zu geben, die nicht mit Klassenmememmnamen in Konflikt geraten.

Beispiel

Im folgenden Beispiel wird C4458 generiert, da der Parameter x und die lokale Variable y member_fn dieselben Namen wie Datenmmber in der Klasse aufweisen. Verwenden Sie zum Beheben dieses Problems unterschiedliche Namen für die Parameter und lokalen Variablen.

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