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