C ++

Sobrecarga de funciones de C ++

Sobrecarga de funciones de C ++

C ++ es un lenguaje de programación flexible de uso general. Este lenguaje de programación fue creado originalmente por Bjarne Stroustrup, un científico informático danés, en 1985. C ++ admite polimorfismo, herencia y más. Este artículo cubre la sobrecarga de funciones para lograr polimorfismo en tiempo de compilación en el lenguaje de programación C ++.

Que es una funcion?

Una función no es más que un fragmento de código específico que realiza una tarea específica en función de las entradas proporcionadas y devuelve los resultados solicitados al usuario en forma de salida. Las funciones se utilizan para eliminar el código repetitivo en grandes bases de código.

Después de definir una función, puede reutilizarla en un momento posterior, ya sea en el mismo programa o en un programa diferente.

Sintaxis de la función

Una función en C ++ tiene la siguiente sintaxis:

returnType functionName (lista_parámetros)

..
..
return return_value;

La declaración returnType, parameter_list y return son opcionales. Una función en C ++ puede devolver un máximo de un valor. Si una función no devuelve ningún valor, returnType debe definirse como void.

¿Qué es la sobrecarga de funciones??

En C ++, varias definiciones de función pueden tener el mismo nombre de función, pero con diferentes parámetros. Esto se llama sobrecarga de funciones. Con la ayuda de la función de sobrecarga de funciones, se puede lograr el polimorfismo en tiempo de compilación en C++.

Las funciones se pueden sobrecargar de las siguientes formas:

  1. El número de parámetros puede ser diferente
  2. El tipo de datos de los parámetros puede ser diferente
  3. La secuencia de los parámetros puede ser diferente

Sin embargo, el valor de retorno no se considera para la sobrecarga de funciones. 

Las siguientes funciones están sobrecargadas:

  1. int suma (int a, int b)
  2. adición de flotación (flotación f, regodearse g)
  3. suma flotante (float f, int i)
  4. suma flotante (int i, float f)
  5. int suma (int a, int b, int c)
  6. adición de flotación (flotación f, flotación g, flotación h)

Como puede ver, con la ayuda de la función de sobrecarga de funciones en C ++, puede haber múltiples definiciones / funcionalidades con el mismo nombre de función y en el mismo alcance.

Sin la función de sobrecarga de funciones, necesitaría escribir una función separada [por ejemplo, suma_1 (), suma_2 (), etc.] para cada variación. Por ejemplo, puede que tenga que escribir suma_1 () para sumar dos enteros, suma_2 () para sumar dos flotantes, y así sucesivamente. Sin embargo, como puede ver arriba, la función de sobrecarga de funciones se puede usar para definir múltiples variaciones de la función "adición ()" mientras se mantiene el mismo nombre de función.

Las siguientes funciones no se consideran sobrecargadas porque la única diferencia entre estas dos es el tipo de retorno (el tipo de retorno no se considera para la sobrecarga de funciones en C ++):

  1. int suma (int a, int b)
  2. suma flotante (int a, int b)

Ejemplos de

Ahora que comprende el concepto de sobrecarga de funciones, repasaremos un par de programas de ejemplo de trabajo para comprender este concepto con mayor claridad. Cubriremos los siguientes ejemplos:

  1. Ejemplo 1: función simple
  2. Ejemplo 2: función de suma simple
  3. Ejemplo 3: Función de sobrecarga (1)
  4. Ejemplo 4: Función de sobrecarga (2)
  5. Ejemplo 5: Función de sobrecarga (3)

Los dos primeros ejemplos explican cómo funcionan las funciones normales en C ++, mientras que los tres últimos ejemplos demuestran la característica de sobrecarga de funciones en C++.

Ejemplo 1: función simple

En este ejemplo, demostraremos cómo se puede definir y llamar una función simple en C++. Definiremos una clase llamada "Display" y una función pública llamada "display ().”Desde la función“ main () ”, llamaremos a la función“ display () ”con la ayuda del objeto de clase“ Display ”(d).

#incluir
usando el espacio de nombres std;
pantalla de clase

público:
pantalla vacía ()

cout << "Hello World!" << endl;

;
int main ()

Pantalla d;
D.monitor();
return 0;

Ejemplo 2: función de suma simple

En este ejemplo, demostraremos cómo definir una función simple "suma ()" en C++. Definiremos una clase llamada "DemoAdd" y una función pública llamada "adición ().”Desde la función“ main () ”, llamaremos a la función“ suma () ”con la ayuda del objeto de clase“ DemoAdd ”(d).

En este ejemplo, la implementación actual de la función "suma ()" acepta solo dos parámetros enteros. Eso significa que la función "suma ()" actual es capaz de sumar solo dos enteros.

Para agregar tres enteros en lugar de dos, se puede definir una función con un nombre diferente, como "suma_1 ()". En C ++, una función se puede sobrecargar, lo que significa que se puede definir otra definición de la función "suma ()" para sumar tres enteros y mantener el mismo nombre, i.mi., "adición()."En el siguiente ejemplo, veremos cómo sobrecargar la función" suma () ".

#incluir
usando el espacio de nombres std;
clase DemoAdd

público:
int suma (int a, int b)

resultado int;
resultado = a + b;
devolver resultado;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res;
res = d.adición (i1, i2);
cout << "Result = " << res << endl;
return 0;

Ejemplo 3: Función de sobrecarga (1)

En el ejemplo anterior, definimos la función "suma ()" para sumar dos enteros y devolver el resultado calculado. Ahora, en este ejemplo, sobrecargaremos la función "suma ()" para sumar tres enteros. Entonces, podremos llamar a la función "suma ()" con dos argumentos enteros, así como tres argumentos enteros.

Sin la función de sobrecarga de funciones, tendríamos que escribir otra función con un nombre diferente.

#incluir
usando el espacio de nombres std;
clase DemoAdd

público:
// Primera definición de función de suma ()
int suma (int a, int b)

resultado int;
resultado = a + b;
devolver resultado;

// Versión sobrecargada de la función Add ()
int suma (int a, int b, int c)

resultado int;
resultado = a + b + c;
devolver resultado;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.adición (i1, i2); // suma () con 2 parámetros
res2 = d.suma (i1, i2, i3); // suma () con 3 parámetros
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
return 0;

Ejemplo 4: Función de sobrecarga (2)

En secciones anteriores de este artículo, aprendió que la sobrecarga de funciones se puede realizar en función de las diferencias en el tipo de parámetro. Aquí, hemos sobrecargado la función "suma ()" basada en el tipo de datos del parámetro. En la primera versión de la función de suma, agregaremos dos variables de tipo entero; y en la segunda versión, agregaremos dos variables de tipo flotante.

#incluir
usando el espacio de nombres std;
clase DemoAdd

público:
// Primera definición de suma ()
int suma (int a, int b)

resultado int;
resultado = a + b;
devolver resultado;

// Definición de función sobrecargada
adición de flotación (flotación f, flotación g)

resultado flotante;
resultado = f + g;
devolver resultado;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res1;
flotar f1 = 10.5, f2 = 20.7, res2;
res1 = d.adición (i1, i2); // se llamará la adición (int a, int b)
res2 = d.adición (f1, f2); // se llamará la adición (float f, flat g)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
return 0;

Ejemplo 5: Sobrecarga de función (3)

En este ejemplo, la función "suma ()" está sobrecargada en función de las diferencias en la secuencia de la lista de parámetros. Esta es otra forma de sobrecargar una función en C++.

#incluir
usando el espacio de nombres std;
clase DemoAdd

público:
// Primera definición de función de la función de suma ()
suma flotante (int a, float b)

resultado flotante;
resultado = (flotante) a + b;
devolver resultado;

// Definición de función sobrecargada de la función de adición ()
suma flotante (float a, int b)

resultado flotante;
resultado = a + (flotante) b;
devolver resultado;

;
int main ()

DemoAdd d;
int i1 = 10;
flotar f1 = 10.5, res1, res2;
res1 = d.suma (i1, f1); // se llamará la adición (int a, float b)
res2 = d.adición (f1, i1); // se llamará la adición (float a, int b)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
return 0;

Conclusión

C ++ es un lenguaje de programación flexible y de propósito general que se usa ampliamente en varios dominios. Este lenguaje de programación admite polimorfismo tanto en tiempo de compilación como en tiempo de ejecución. En este artículo, aprendió cómo lograr polimorfismo en tiempo de compilación en C ++ usando la función de sobrecarga de funciones. Esta es una característica muy útil en C ++ que ayuda a los programadores a escribir código legible. También puede ser útil para escribir código reutilizable.

Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...