Share via


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

Deklarace identifikátoru skryje člen třídy.

Deklarace identifikátoru v místním oboru skryje deklaraci identického identifikátoru v oboru třídy. Toto upozornění vás upozorní, že odkazy na identifikátor v tomto oboru se přeloží na místně deklarovanou verzi, nikoli na verzi člena třídy, která 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 názvy členů třídy.

Příklad

Následující ukázka generuje C4458, protože parametr x a místní proměnná ymember_fn mají stejné názvy jako datové členy ve třídě. Pokud chcete tento problém vyřešit, použijte pro parametry a místní proměnné různé názvy.

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