Bagikan melalui


Compiler Warning (level 4) C4487

'derived_class_function' : cocok dengan metode non-virtual yang diwariskan 'base_class_function' tetapi tidak secara eksplisit ditandai 'baru'

Fungsi dalam kelas turunan memiliki tanda tangan yang sama dengan fungsi kelas dasar non-virtual. C4487 mengingatkan Anda bahwa fungsi kelas turunan tidak mengambil alih fungsi kelas dasar. Tandai secara eksplisit fungsi kelas turunan untuk new mengatasi peringatan ini.

Untuk informasi selengkapnya, lihat baru (slot baru di vtable).

Contoh

Sampel berikut menghasilkan C4487.

// C4487.cpp
// compile with: /W4 /clr
using namespace System;
public ref struct B {
   void f() { Console::WriteLine("in B::f"); }
   void g() { Console::WriteLine("in B::g"); }
};

public ref struct D : B {
   void f() { Console::WriteLine("in D::f"); }   // C4487
   void g() new { Console::WriteLine("in D::g"); }   // OK
};

int main() {
   B ^ a = gcnew D;
   // will call base class functions
   a->f();
   a->g();
}