Función que reemplaza con diferentes tipos de retorno

¿Influye el tipo de retorno en la función que prevalece? (Hasta donde sé, el tipo typde no es parte de una firma de función / método) En una clase base tengo una función, que no obtiene argumentos, devuelveint y es puro virtual. En cada clase derivada, defino una enumeración para el tipo de retorno. La función está anulada en las clases derivadas, es decir, tiene la misma firma pero un comportamiento diferente. La pregunta es: ¿es legal para la anulación y el tipo de retorno no es parte de la anulación de la función?

Ejemplo de código:

class Base
{
  public:
  typedef int ret;
  virtual ret method() = 0;
};

class Der1
{
public:
  enum ret1{
    ret1_0,
    ret1_1
  };
  ret1 method() { return ret1_1;}
};

class Der1
{
public:
  enum ret2{
    ret2_0,
    ret2_1
  };
  ret1 method() { return ret2_0;}
};

Respuestas a la pregunta(4)

Su respuesta a la pregunta