cpp-sobrecarga-funciones

Qué es la sobrecarga de funciones en C++

La sobrecarga de funciones es una característica de C++ que permite definir múltiples versiones de funciones con el mismo nombre pero con diferentes listas de parámetros.

El compilador de C++ decide qué versión de la función invocar basándose en los tipos y número de argumentos que se pasan en la llamada a la función.

Esto proporciona flexibilidad y evita la necesidad de usar nombres de funciones diferentes para operaciones similares.

Sintaxis de la sobrecarga

Para utilizar la sobrecarga de funciones, las funciones deben diferenciarse por al menos un aspecto de sus parámetros: el tipo o el número de argumentos.

#include <iostream>

// Función para sumar dos enteros
int Sumar(int a, int b) {
    return a + b;
}

// Función para sumar tres enteros
int Sumar(int a, int b, int c) {
    return a + b + c;
}

// Función para sumar dos números de punto flotante
double Sumar(double a, double b) {
    return a + b;
}

int main() {
    std::cout << "Suma de 2 y 3: " << Sumar(2, 3) << std::endl;           // Llama a Sumar(int, int)
    std::cout << "Suma de 1, 2 y 3: " << Sumar(1, 2, 3) << std::endl;    // Llama a Sumar(int, int, int)
    std::cout << "Suma de 2.5 y 3.5: " << Sumar(2.5, 3.5) << std::endl;   // Llama a Sumar(double, double)

    return 0;
}

En este ejemplo, la función Sumar está sobrecargada de tres formas:

  • Para sumar dos enteros.
  • Para sumar tres enteros.
  • Para sumar dos números de punto flotante.

No es posible emplear la sobrecarga basada únicamente en el tipo de retorno. Por ejemplo, el siguiente caso no sería valido:

int MiMetodo(int a, int b) {
    return a + b;
}

// Esto no es válido, ya que solo se diferencia por el tipo de retorno
double MiMetodo(int a, int b) {
    return static_cast<double>(a + b);
}

Ejemplos prácticos

Estos ejemplos tienen el propósito de mostrar cómo utilizar la sobrecarga. No significa que sea la mejor forma de resolver el problema que abordan. Lo normal es que haya alternativas mejores