Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
deklaracja "identifier" ukrywa poprzednią deklarację lokalną
Uwagi
Deklaracja identyfikatora w zakresie lokalnym ukrywa deklarację poprzedniej deklaracji lokalnej o tej samej nazwie. To ostrzeżenie informuje o tym, że odwołania do identyfikatora w zakresie lokalnym rozpoznają lokalnie zadeklarowaną wersję, a nie poprzednią lokalną, która może lub nie jest twoim zamiarem. Aby rozwiązać ten problem, zalecamy nadanie nazw zmiennych lokalnych, które nie powodują konfliktu z innymi nazwami lokalnymi.
Przykład
Poniższy przykład generuje C4456, ponieważ zmienna lokalna double x i zmienna sterowania pętli int x w member_fn mają takie same nazwy. Aby rozwiązać ten problem, użyj różnych nazw zmiennych lokalnych.
// 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;