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á y
member_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;