Condividi tramite


Avviso del compilatore (livello 4) C4487

'derived_class_function': corrisponde al metodo non virtuale ereditato 'base_class_function' ma non è contrassegnato in modo esplicito 'new'

Una funzione in una classe derivata ha la stessa firma di una funzione di classe base non virtuale. C4487 ricorda che la funzione di classe derivata non esegue l'override della funzione della classe di base. Contrassegnare in modo esplicito la funzione della classe derivata per new risolvere questo avviso.

Per altre informazioni, vedere new (new slot in vtable).For more information, see new (new slot in vtable).

Esempio

L'esempio seguente genera l'errore 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();
}