Compiler Warning (level 4) C4458
deklarasi 'pengidentifikasi' menyembunyikan anggota kelas
Deklarasi pengidentifikasi dalam cakupan lokal menyembunyikan deklarasi pengidentifikasi bernama identik pada cakupan kelas. Peringatan ini memungkinkan Anda mengetahui bahwa referensi ke pengidentifikasi dalam cakupan ini diselesaikan ke versi yang dideklarasikan secara lokal, bukan versi anggota kelas, yang mungkin atau mungkin bukan niat Anda. Untuk memperbaiki masalah ini, kami sarankan Anda memberikan nama variabel lokal yang tidak bertentangan dengan nama anggota kelas.
Contoh
Sampel berikut menghasilkan C4458 karena parameter x
dan variabel y
lokal memiliki member_fn
nama yang sama dengan anggota data di kelas . Untuk memperbaiki masalah ini, gunakan nama yang berbeda untuk parameter dan variabel lokal.
// 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;