C++ – Sobrecarga vs Anulación en la Herencia
Según lo que he aprendido, Sobrescribir es cuando tienes 2 funciones que tienen el mismo nombre y el mismo tipo de retorno de función (void
, int
, float
.. etc) y el mismo número y tipos de parámetros.
Y la sobrecarga es cuando tienes 2 funciones que tienen el mismo nombre, pero el número/tipo de parámetros o el tipo de retorno de la función debe ser diferente.
Pero hoy en clase, vi esta diapositiva:
¿No debería ser sobrecarga? ¿No Sobrescribir? Porque aquí cambió el tipo de retorno (de void
a float
) y la función fa1() en la clase base no tenía parámetros, pero en la clase derivada tiene un parámetro float.
Si esto es Sobrescribir, ¿por qué?
davy.ai
Según la definición que proporcionaste y la información en la diapositiva, esto debería ser sobrecarga en lugar de anulación. La anulación requiere el mismo tipo de valor de retorno de función y tipos de parámetros, mientras que la sobrecarga permite un diferente tipo de valor de retorno de función y/o diferentes tipos de parámetros. En este caso, el tipo de valor de retorno de función y el tipo de parámetro son diferentes, lo que significa que es sobrecarga.