Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
az "azonosító" deklaráció elrejti a korábbi helyi deklarációt
Megjegyzések
A helyi hatókörben az azonosító deklarációja elrejti az előző, azonos nevű helyi deklaráció deklarációját. Ez a figyelmeztetés tudatja Önvel, hogy a helyi hatókörben lévő azonosítóra mutató hivatkozások a helyileg deklarált verzióra kerülnek, nem pedig az előző helyi verzióra, amely lehet, hogy nem az Ön szándéka. A probléma megoldásához javasoljuk, hogy adjon meg olyan helyi változóneveket, amelyek nem ütköznek más helyi névvel.
Example
Az alábbi példa azért hozza létre a C4456-ot, mert a ciklusvezérlő változó int x és a helyi változó double xmember_fn neve megegyezik. A probléma megoldásához használjon különböző neveket a helyi változókhoz.
// 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;