Condividi tramite


Avviso del compilatore (livello 4) C4457

dichiarazione di 'identifier' nasconde il parametro della funzione

La dichiarazione di identificatore nell'ambito locale nasconde la dichiarazione del parametro della funzione con nome identico. Questo avviso consente di sapere che i riferimenti all'identificatore nell'ambito locale vengono risolti nella versione dichiarata in locale, non nel parametro , che può essere o meno la finalità. Per risolvere questo problema, è consigliabile assegnare nomi di variabili locali che non sono in conflitto con i nomi dei parametri.

Esempio

L'esempio seguente genera l'errore C4457 perché il parametro x e la variabile x locale in member_fn hanno gli stessi nomi. Per risolvere questo problema, usare nomi diversi per i parametri e le variabili locali.

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