Advertencia del compilador (nivel 4) C4457
la declaración de "identifier" oculta el parámetro de función
La declaración de identifier en el ámbito local oculta la declaración del parámetro de función con nombre idéntico. Esta advertencia le permite saber que las referencias a identifier en el ámbito local se resuelven en la versión declarada localmente, no en el parámetro, que puede ser o no su intención. Para corregir este problema, se recomienda asignar nombres de variables locales que no entren en conflicto con los nombres de parámetro.
Ejemplo
El ejemplo siguiente genera la advertencia C4457 porque el parámetro x
y la variable local x
de member_fn
tienen los mismos nombres. Para corregir este problema, use nombres diferentes para los parámetros y variables locales.
// 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;