Compartir a través de


Advertencia del compilador C4485

"override_function": coincide con el método de clase ref base "base_class_function", pero no está marcado como "new" u "override"; se da por supuesto que es "new" (y no "virtual")

Un descriptor de acceso invalida, con o sin la palabra clave virtual, una función de descriptor de acceso de clase base, pero el especificador override o new no formaba parte de la signatura de función de invalidación. Agregue el especificador new o override para resolver esta advertencia.

Consulte override y new (nueva ranura en vtable) para más información.

La advertencia C4485 siempre se emite como error. Para suprimir la advertencia C4485, use la pragma warning.

Ejemplo

El ejemplo siguiente genera la advertencia C4485

// C4485.cpp
// compile with: /clr
delegate void Del();

ref struct A {
   virtual event Del ^E;
};

ref struct B : A {
   virtual event Del ^E;   // C4485
};

ref struct C : B {
   virtual event Del ^E {
      void raise() override {}
      void add(Del ^) override {}
      void remove(Del^) override {}
   }
};