Sobrecarga de la función C ++

Sobrecarga de la función C ++

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

Que es una función?

Una función no es más que un código específico que realiza una tarea específica basada en 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 funciones

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

returnType functionName (parameter_list)



return return_value;

La instrucció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, el thype de retorno debe definirse como nulo.

¿Qué es la sobrecarga de funciones??

En C ++, las definiciones de funciones múltiples 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, el polimorfismo de tiempo de compilación se puede lograr en C++.

Las funciones se pueden sobrecargar de las siguientes maneras:

  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 adición (int a, int b)
  2. Adición de flotación (Float F, Gloat G)
  3. Adición de flotación (Float F, Int I)
  4. Adición de flotación (int i, float f)
  5. Int Adición (int a, int b, int c)
  6. Adición de flotación (Float F, Float G, Float 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, además_1 (), además_2 () etc] para cada variación. Por ejemplo, es posible que deba escribir además_1 () para agregar dos enteros, además_2 () para agregar dos flotadores, y así sucesivamente. Sin embargo, como puede ver anteriormente, la función de sobrecarga de funciones se puede utilizar para definir múltiples variaciones de la función "adición ()" mientras mantiene el mismo nombre de la función.

No se considera que las siguientes funciones se sobrecarguen porque la única diferencia entre estos dos es el tipo de retorno (el tipo de retorno no se considera para la sobrecarga de funciones en C ++):

  1. int adición (int a, int b)
  2. Adición de flotación (int a, int b)

Ejemplos

Ahora que comprende el concepto de sobrecarga de funciones, pasaremos por un par de programas de ejemplo de trabajo para comprender este concepto más claramente. Cubriremos los siguientes ejemplos:

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

Los dos primeros ejemplos explican cómo funcionan las funciones normales en C ++, mientras que los últimos tres ejemplos demuestran la función 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" Mostrar "(D).

#incluir
usando el espacio de nombres STD;
visualización de clases

público:
visualización void ()
cout << "Hello World!" << endl;

;
int main ()

Visualización D;
d.mostrar();
regresar 0;

Ejemplo 2: función de adición simple

En este ejemplo, demostraremos cómo definir una función simple "adición ()" en c++. Definiremos una clase llamada "Demoadd" y una función pública llamada "además ()."Desde la función" main () ", llamaremos a la función" adición () "con la ayuda del objeto de clase" DemoADD "(D).

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

Para agregar tres enteros en lugar de dos, se puede definir una función con un nombre diferente, como "además_1 ()",. En C ++, se puede sobrecargar una función, lo que significa que otra definición de la función "además ()" se puede definir para agregar tres enteros y mantener el mismo nombre, I.mi., "suma()."En el siguiente ejemplo, analizaremos cómo sobrecargar la función" Adición () ".

#incluir
usando el espacio de nombres STD;
Demoadd de clase

público:
int adición (int a, int b)
int resultado;
resultado = a + b;
resultado de retorno;

;
int main ()
Demoadd D;
int i1 = 10, i2 = 20, res;
Res = D.adición (i1, i2);
cout << "Result = " << res << endl;
regresar 0;

Ejemplo 3: sobrecarga de funciones (1)

En el ejemplo anterior, definimos la función "además ()" para agregar dos enteros y devolver el resultado calculado. Ahora, en este ejemplo, sobrecargaremos la función "Adición ()" para agregar tres enteros. Por lo tanto, podremos llamar a la función "adición ()" 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;
Demoadd de clase

público:
// Definición de primera función de adición ()
int adición (int a, int b)

int resultado;
resultado = a + b;
resultado de retorno;

// Versión sobrecargada de la función Adición ()
Int Adición (int a, int b, int c)

int resultado;
resultado = a + b + c;
resultado de retorno;

;
int main ()

Demoadd D;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = D.adición (i1, i2); // además () con 2 parámetros
res2 = D.adición (i1, i2, i3); // además () con 3 parámetros
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
regresar 0;

Ejemplo 4: sobrecarga de funciones (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 "además ()" en función del tipo de datos del parámetro. En la primera versión de la función de adición, 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;
Demoadd de clase

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

int resultado;
resultado = a + b;
resultado de retorno;

// Definición de función sobrecargada
Adición de flotación (Float F, Float G)

resultado flotante;
resultado = f + g;
resultado de retorno;

;
int main ()
Demoadd D;
int i1 = 10, i2 = 20, res1;
flotante F1 = 10.5, F2 = 20.7, res2;
res1 = D.adición (i1, i2); // adición (int a, int b) se llamará
res2 = D.adición (F1, F2); // Se llamará adición (Float F, Flat G)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
regresar 0;

Ejemplo 5: sobrecarga de funciones (3)

En este ejemplo, la función "además ()" se sobrecarga 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;
Demoadd de clase

público:
// Función de primera función de la función además ()
Adición de flotación (int a, float b)

resultado flotante;
resultado = (float) a + b;
resultado de retorno;

// Función de la función sobrecargada de la función además ()
Adición de flotación (Float A, Int B)

resultado flotante;
resultado = a + (float) b;
resultado de retorno;

;
int main ()

Demoadd D;
int i1 = 10;
flotante F1 = 10.5, res1, res2;
res1 = D.adición (I1, F1); // Se llamará a la adición (int a, float b)
res2 = D.adición (F1, I1); // Se llamará a la adición (Float A, Int B)
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
regresar 0;

Conclusión

C ++ es un lenguaje de programación de uso general y flexible que se usa ampliamente en varios dominios. Este lenguaje de programación admite el polimorfismo de tiempo de compilación y tiempo de ejecución. En este artículo, aprendió cómo lograr el polimorfismo en tiempo de compilación en C ++ utilizando 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.