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();
}