Bagikan melalui


Compiler Warning C4484

'override_function' : cocok dengan metode kelas ref dasar 'base_class_function', tetapi tidak ditandai 'virtual', 'baru' atau 'ambil alih'; 'new' (dan bukan 'virtual') diasumsikan

Saat mengkompilasi dengan /clr, pengkompilasi tidak akan secara implisit mengambil alih fungsi kelas dasar, yang berarti fungsi akan mendapatkan slot baru di vtable. Untuk mengatasinya, tentukan secara eksplisit apakah fungsi adalah penimpaan.

Untuk informasi selengkapnya, lihat:

C4484 selalu dikeluarkan sebagai kesalahan. Gunakan pragma peringatan untuk menekan C4484.

Contoh

Sampel berikut menghasilkan C4484.

// C4484.cpp
// compile with: /clr
ref struct A {
   virtual void Test() {}
};

ref struct B : A {
   void Test() {}   // C4484
};

// OK
ref struct C {
   virtual void Test() {}
   virtual void Test2() {}
};

ref struct D : C {
   virtual void Test() new {}
   virtual void Test2() override {}
};