Compartir a través de


Error del compilador C2553

"base_function": la invalidación del tipo de valor devuelto de función virtual difiere de "override_function"

Una función de una clase derivada intentó invalidar una función virtual en una clase base, pero la función de clase derivada no tenía el mismo tipo de valor devuelto que la función de clase base. Una signatura de función de invalidación debe coincidir con la signatura de la función que se va a invalidar.

En el ejemplo siguiente se genera C2553:

// C2553.cpp
// compile with: /clr /c
ref struct C {
   virtual void f();
};

ref struct D : C {
   virtual int f() override ;   // C2553

   // try the following line instead
   // virtual void f() override;
};