Compartir a través de


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;