Bagikan melalui


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;