Aviso do compilador (nível 4) C4487
'derived_class_function': corresponde ao método não virtual herdado 'base_class_function', mas não está explicitamente marcado como 'new'
Uma função em uma classe derivada tem a mesma assinatura que uma função de classe base não virtual. O aviso C4487 lembra que a função de classe derivada não substitui a função de classe base. Marque explicitamente a função de classe derivada como new
para resolver esse aviso.
Para obter mais informações, confira new (novo slot na vtable).
Exemplo
O exemplo a seguir gera o aviso 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();
}