logo

Sobrecarga de funciones en C++

La sobrecarga de funciones es una característica de la programación orientada a objetos donde dos o más funciones pueden tener el mismo nombre pero diferentes parámetros. Cuando el nombre de una función se sobrecarga con diferentes trabajos, se denomina sobrecarga de funciones. En la sobrecarga de funciones, el nombre de la función debe ser el mismo y los argumentos deben ser diferentes. La sobrecarga de funciones se puede considerar como un ejemplo de característica de polimorfismo en C++.

Si varias funciones tienen el mismo nombre pero los parámetros de las funciones deben ser diferentes, se conoce como sobrecarga de funciones.
Si tenemos que realizar solo una operación y tener el mismo nombre de las funciones aumenta la legibilidad del programa.
Supongamos que tiene que realizar la suma de los números dados, pero puede haber cualquier número de argumentos. Si escribe la función como a(int,int) para dos parámetros y b(int,int,int) para tres parámetros, entonces Puede resultarle difícil comprender el comportamiento de la función porque su nombre difiere.

Los parámetros deben seguir una o más de las siguientes condiciones para la sobrecarga de funciones:



cuanto es 10 de 60
  • Los parámetros deben tener un tipo diferente.

agregar(int a, int b)
sumar(doble a, doble b)

A continuación se muestra la implementación de la discusión anterior:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }>

>

>

Producción

sum = 12 sum = 11.5>
  • Los parámetros deben tener un número diferente.

agregar(int a, int b)
agregar(int a, int b, int c)

A continuación se muestra la implementación de la discusión anterior:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }>

>

>

Producción

sum = 12 sum = 15>
  • Los parámetros deben tener una secuencia diferente de parámetros.

sumar(int a, doble b)
agregar (doble a, int b)

A continuación se muestra la implementación de la discusión anterior:

C++




#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

Producción

sum = 12.5 sum = 11.5>

A continuación se muestra un ejemplo sencillo de C++ para demostrar la sobrecarga de funciones.

CPP




#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }>

>

hacer ejecutable un script sh

>

Producción

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

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }>

>

>

C++




#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

¿Cómo funciona la sobrecarga de funciones?

  • Coincidencia exacta :- (Nombre de función y parámetro)
  • Si a no se encuentra una coincidencia exacta:

->Char, Unsigned char y short se promocionan a int.

->La flotación asciende al doble

métodos de cadena java
  • Si no se encuentra ninguna coincidencia :

->C++ intenta encontrar una coincidencia mediante la conversión estándar.

  • OTRO ERROR
  1. Sobrecarga de funciones y tipo de retorno
  2. Funciones que no se pueden sobrecargar en C++
  3. Sobrecarga de funciones y palabra clave constante
  4. Sobrecarga de funciones frente a anulación de funciones en C++

Artículos recientes sobre sobrecarga de funciones en C++