Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Deklaration von "Identifier" blendet vorherige lokale Deklaration aus.
Bemerkungen
Die Deklaration des Bezeichners im lokalen Bereich blendet die Deklaration der vorherigen lokalen Deklaration desselben Namens aus. Diese Warnung informiert Sie darüber, dass Verweise auf bezeichner im lokalen Bereich auf die lokal deklarierte Version aufgelöst werden, nicht auf die vorherige lokale Version, die möglicherweise ihre Absicht ist oder nicht. Um dieses Problem zu beheben, empfehlen wir, lokale Variablennamen zu geben, die nicht mit anderen lokalen Namen in Konflikt geraten.
Beispiel
Im folgenden Beispiel wird C4456 generiert, da die Variable des Schleifensteuerelements int x und die lokale Variable double xmember_fn die gleichen Namen haben. Verwenden Sie zum Beheben dieses Problems unterschiedliche Namen für die lokalen Variablen.
// C4456_hide.cpp
// compile with: cl /W4 /c C4456_hide.cpp
struct S {
void member_fn(unsigned u) {
double x = 0;
for (int x = 0; x < 10; ++x) { // C4456
u += x; // uses local int x
}
x += u; // uses local double x
}
} s;