C4484 de aviso do compilador
'override_function': corresponde ao método da classe base ref 'base_class_function', mas não está marcado como 'virtual', 'new' ou 'override'; 'new' (e não 'virtual') será adotada.
Durante a compilação com /clr, o compilador não irá substituir implicitamente uma função de classe base, o que significa que a função irá obter um novo slot em que o vtable.Para resolver, especifica explicitamente se uma função é uma substituição.
Para obter mais informações, consulte:
C4484 é sempre emitido como um erro.Use o Aviso pragma para suprimir a C4484.
Exemplo
O exemplo a seguir gera C4484.
// C4484.cpp
// compile with: /clr
ref struct A {
virtual void Test() {}
};
ref struct B : A {
void Test() {} // C4484
};
// OK
ref struct C {
virtual void Test() {}
virtual void Test2() {}
};
ref struct D : C {
virtual void Test() new {}
virtual void Test2() override {}
};