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:
- El número de parámetros puede ser diferente
- El tipo de datos de los parámetros puede ser diferente
- 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:
- int suma (int a, int b)
- adición de flotación (flotación f, regodearse g)
- suma flotante (float f, int i)
- suma flotante (int i, float f)
- int suma (int a, int b, int c)
- 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 ++):
- int suma (int a, int b)
- 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:
- Ejemplo 1: función simple
- Ejemplo 2: función de suma simple
- Ejemplo 3: Función de sobrecarga (1)
- Ejemplo 4: Función de sobrecarga (2)
- 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).
#incluirusando 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 () ".
#incluirusando 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.
#incluirusando 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.
#incluirusando 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++.
#incluirusando 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.