Share via


Upozornění kompilátoru (úroveň 4) C4456

Deklarace identifikátoru skryje předchozí místní deklaraci.

Deklarace identifikátoru v místním oboru skryje deklaraci předchozí místní deklarace stejného názvu. Toto upozornění vás upozorní, že odkazy na identifikátor v místním oboru se přeloží na místně deklarovanou verzi, nikoli na předchozí místní, což může nebo nemusí být vaším záměrem. Pokud chcete tento problém vyřešit, doporučujeme zadat názvy místních proměnných, které nejsou v konfliktu s jinými místními názvy.

Příklad

Následující ukázka generuje C4456, protože řídicí proměnná int x smyčky a místní proměnná double x mají member_fn stejné názvy. Pokud chcete tento problém vyřešit, použijte pro místní proměnné různé názvy.

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