Sobrecarga de funciones en C++
En la escritura de código real, a veces la misma función funcional puede procesar diferentes tipos de objetos, por lo que es necesario volver a implementar la función, lo que hará que el código sea más complicado. Para resolver este problema, C ++ admite la sobrecarga de funciones. .
Por ejemplo, para un problema de suma aritmética, necesita personalizar una función para recibir los datos entrantes y resumirlos, pero como módulo independiente, ¿cómo puede saber qué tipo de datos ha pasado la persona que llama? Pueden ser datos enteros, por supuesto, pueden ser datos de tipo punto flotante, o pueden ser un tipo entero y uno de punto flotante (aún no se sabe cuál es el tipo entero y cuál es el tipo punto flotante), y un enfoque integral es utilizar varios Cada tipo de función de parámetro formal debe tener una función definida, es decir, dos tipos int, dos tipos dobles, el primero int y el segundo doble, y el primer doble y el segundo int Defina cuatro funciones. para Implementación, por ejemplo, los nombres son: Add_double_double(), Add_int_double(), Add_int_int(), Add_double_int(), etc. ¿No parece confuso?
Luego, la aparición de la sobrecarga de funciones en C ++ resuelve muy bien este problema. La sobrecarga de funciones consiste en dos o más funciones con el mismo nombre de función pero diferentes tipos o números de parámetros, según el tipo y número de parámetros, se selecciona automáticamente la función más adecuada. para llamadas vinculantes y la selección se implementa automáticamente.
Por ejemplo, en el ejemplo de suma de ahora:
#include<iostream>usingnamespacestd;intadd(inta,intb){cout<<(int,int)t;returna+b;}doubleadd(doublea,doubleb){cout<<(doble,double)t;returna+ b ;}doubledd(doublea,intb){cout<<(double,int)t;returna+b;}doubledd(inta,doubleb){cout<<(int,double)t;returna+b;}intmain ( ){cout<<add(2,3)<<endl;cout<<add(2.9,15.3)<<endl;cout<<add(10,9.9)<<endl;cout<<add(11.5,5) <<endl;return0;}
Los resultados de ejecución son los siguientes:
Lea el código detenidamente para confirmar qué función se ejecuta, agregamos una declaración de salida cout dentro de la función para distinguir qué función se llama.
¡Todos deben experimentar por su cuenta para comprender el código!