Bagikan melalui


Compiler Warning (level 1) C4383

'instance_dereference_operator' : arti dari dereferensi handel dapat berubah, ketika operator 'operator' yang ditentukan pengguna ada; tulis operator sebagai fungsi statis untuk menjadi eksplisit tentang operand

Saat Anda menambahkan penimpaan instans yang ditentukan pengguna dari operator dereferensi dalam jenis terkelola, Anda berpotensi mengambil alih kemampuan operator dereferensi jenis untuk mengembalikan objek handel. Pertimbangkan untuk menulis operator dereferensi statis yang ditentukan pengguna.

Untuk informasi selengkapnya, lihat Menangani ke Operator Objek (^) dan Operator Referensi Pelacakan.

Selain itu, operator instans tidak tersedia untuk pengkompilasi bahasa lain melalui metadata yang dirujuk. Untuk informasi selengkapnya, lihat Operator yang Ditentukan Pengguna (C++/CLI).

Contoh

Sampel berikut menghasilkan C4383.

// C4383.cpp
// compile with: /clr /W1

ref struct S {
   int operator*() { return 0; }   // C4383
};

ref struct T {
   static int operator*(T%) { return 0; }
};

int main() {
   S s;
   S^ pS = %s;

   T t;
   T^ pT = %t;
   T% rT = *pT;
}