Derleyici Uyarısı (düzey 4) C4487
'derived_class_function' : devralınan sanal olmayan 'base_class_function' yöntemiyle eşleşir, ancak açıkça 'new' olarak işaretlenmez
Türetilmiş bir sınıftaki bir işlev, sanal olmayan bir temel sınıf işleviyle aynı imzaya sahiptir. C4487, türetilmiş sınıf işlevinin temel sınıf işlevini geçersiz kılmadığını anımsatır. Bu uyarıyı çözmek için türetilmiş sınıf işlevini açıkça olarak new
işaretleyin.
Daha fazla bilgi için bkz . yeni (vtable'da yeni yuva).
Örnek
Aşağıdaki örnek C4487 oluşturur.
// 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();
}