Compiler Warning (level 4) C4457
deklarasi 'pengidentifikasi' menyembunyikan parameter fungsi
Deklarasi pengidentifikasi dalam cakupan lokal menyembunyikan deklarasi parameter fungsi bernama identik. Peringatan ini memungkinkan Anda mengetahui bahwa referensi ke pengidentifikasi dalam cakupan lokal diselesaikan ke versi yang dideklarasikan secara lokal, bukan parameter, yang mungkin atau mungkin bukan niat Anda. Untuk memperbaiki masalah ini, kami sarankan Anda memberikan nama variabel lokal yang tidak berkonflik dengan nama parameter.
Contoh
Sampel berikut menghasilkan C4457 karena parameter x
dan variabel x
lokal dalam member_fn
memiliki nama yang sama. Untuk memperbaiki masalah ini, gunakan nama yang berbeda untuk parameter dan variabel lokal.
// C4457_hide.cpp
// compile with: cl /W4 /c C4457_hide.cpp
struct S {
void member_fn(unsigned x) {
double a = 0;
for (int x = 0; x < 10; ++x) { // C4457
a += x; // uses local x
}
a += x; // uses parameter x
}
} s;