Предупреждение компилятора (уровень 4) C4487
"derived_class_function" : соответствует наследуемого не-виртуального метода "base_class_function", но не имеет явного метки "new"
Функция в производном классе имеет ту же сигнатуру, что и функция не виртуального базового класса. C4487 напоминает, что производная функция класса не переопределяет функцию базового класса. Явным образом помечайте производную функцию класса, чтобы new
устранить это предупреждение.
Дополнительные сведения см. в статье "Новые слоты в vtable".
Пример
Следующий пример приводит к возникновению ошибки 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();
}