Erro do compilador C2553
'base_function': substituir tipo de retorno de função virtual difere de 'override_function'
Uma função em uma classe derivada tentou substituir uma função virtual em uma classe base, mas a função de classe derivada não tinha o mesmo tipo de retorno que a função de classe base. Uma assinatura de função de substituição deve corresponder à assinatura da função que está sendo substituída.
O seguinte exemplo gera 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;
};