Ventajas y desventajas de la sobrecarga de funciones en C++

La sobrecarga de funciones es una de las características importantes de la programación orientada a objetos. Permite a los usuarios tener más de una función con el mismo nombre pero con diferentes propiedades. Las funciones sobrecargadas permiten a los usuarios proporcionar diferentes semánticas para una función, según la firma de las funciones.

Las ventajas de la sobrecarga de funciones son las siguientes:

  • La principal ventaja de la sobrecarga de funciones es que mejora la legibilidad del código y permite la reutilización del código.
  • El uso de la sobrecarga de funciones es para ahorrar espacio en la memoria, consistencia y legibilidad.
  • Acelera la ejecución del programa.
  • El mantenimiento del código también se vuelve fácil.
  • La sobrecarga de funciones aporta flexibilidad al código.
  • La función puede realizar diferentes operaciones y, por lo tanto, elimina el uso de diferentes nombres de funciones para el mismo tipo de operaciones.

Las desventajas de la sobrecarga de funciones son las siguientes:

  • Las declaraciones de funciones que difieren solo en el tipo de devolución no se pueden sobrecargar

Ilustración:

int fun();
float fun();

 Da un error porque la función no se puede sobrecargar solo con el tipo de retorno.

  • Las declaraciones de funciones miembro con el mismo nombre y los mismos tipos de parámetros no se pueden sobrecargar si alguna de ellas es una declaración de función miembro estática.
  • La principal desventaja es que requiere que el compilador realice una manipulación de nombres en el nombre de la función para incluir información sobre los tipos de argumentos.

Ejemplo:

C++

// Importing input output stream files
#include <iostream>
  
using namespace std;
  
// Methods to print
  
// Method 1
void print(int i)
{
  
    // Print and display statement whenever
    // method 1 is called
    cout << " Here is int " << i << endl;
}
  
// Method 2
void print(double f)
{
  
    // Print and display statement whenever
    // method 2 is called
    cout << " Here is float " << f << endl;
}
  
// Method 3
void print(char const* c)
{
  
    // Print and display statement whenever
    // method 3 is called
    cout << " Here is char* " << c << endl;
}
  
// Method 4
// Main driver method
int main()
{
  
    // Calling method 1
    print(10);
    // Calling method 2
    print(10.10);
    // Calling method 3
    print("ten");
  
    return 0;
}
Producción

 Here is int 10
 Here is float 10.1
 Here is char* ten

Salida Explicación:

En el ejemplo anterior se han realizado todas las funciones que fueron nombradas las 3 mismas pero imprimiendo diferente a las que podemos percibir que fueron llamadas diferentes. Esto puede ser posible debido a los argumentos pasados ​​según los cuales se ejecuta la llamada a la función sin importar si las funciones comparten un nombre común. Además, recuerde que podemos sobrecargar la función cambiando su firma en el tipo de retorno. Por ejemplo, aquí se puede llamar a la función booleana print() para los tres.

Publicación traducida automáticamente

Artículo escrito por sidhijain y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *