Share via


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