Freigeben über


Compilerwarnung (Ebene 4) C4487

'derived_class_function': Gleicht die geerbte nicht virtuelle Methode "base_class_function" ab, ist jedoch nicht explizit als "neu" gekennzeichnet.

Eine Funktion in einer abgeleiteten Klasse weist dieselbe Signatur wie eine nicht virtuelle Basisklassenfunktion auf. C4487 erinnert Sie daran, dass die abgeleitete Klassenfunktion die Basisklassenfunktion nicht überschreibt. Kennzeichnen Sie die abgeleitete Klassenfunktion explizit, um new diese Warnung zu beheben.

Weitere Informationen finden Sie unter "Neu" (neuer Steckplatz in vtable).For more information, see new slot in vtable.for more information, see new (new slot in vtable).

Beispiel

Im folgenden Beispiel wird C4487 generiert.

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