Compartir a través de


Advertencia del compilador (nivel 4) C4487

'derived_class_function': coincide con el método no virtual heredado 'base_class_function', pero no está marcado explícitamente como 'new'

Una función de una clase derivada tiene la misma firma que una función de clase base no virtual. C4487 le recuerda que la función de clase derivada no invalida la función de clase base. Marque explícitamente la función de clase derivada como new para resolver esta advertencia.

Para obtener más información, vea new (nueva ranura en vtable).

Ejemplo

El ejemplo siguiente genera la advertencia 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();
}