Sobrecarga de funciones de C ++ (con ejemplos)

En este tutorial, aprenderemos sobre la sobrecarga de funciones en C ++ con ejemplos.

En C ++, dos funciones pueden tener el mismo nombre si el número y / o tipo de argumentos pasados ​​es diferente.

Estas funciones que tienen el mismo nombre pero diferentes argumentos se conocen como funciones sobrecargadas. Por ejemplo:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Aquí, las 4 funciones son funciones sobrecargadas.

Tenga en cuenta que los tipos de retorno de todas estas 4 funciones no son los mismos. Las funciones sobrecargadas pueden tener o no diferentes tipos de retorno, pero deben tener diferentes argumentos. Por ejemplo,

 // Error code int test(int a) ( ) double test(int b)( )

Aquí, ambas funciones tienen el mismo nombre, el mismo tipo y el mismo número de argumentos. Por lo tanto, el compilador arrojará un error.

Sobrecarga de funciones usando diferentes tipos de parámetros

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Salida

 Valor absoluto de -5 = 5 Valor absoluto de 5.5 = 5.5
Trabajo de sobrecarga para la función absoluta ()

En este programa, sobrecargamos la absolute()función. Según el tipo de parámetro pasado durante la llamada a la función, se llama a la función correspondiente.

Sobrecarga de funciones usando diferentes números de parámetros

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Salida

 Número entero: 5 Número flotante: 5.5 Número entero: 5 y número doble: 5.5

Aquí, la display()función se llama tres veces con diferentes argumentos. Dependiendo del número y tipo de argumentos pasados, display()se llama a la función correspondiente .

Trabajo de sobrecarga para la función display ()

El tipo de retorno de todas estas funciones es el mismo, pero no es necesario que sea el caso de la sobrecarga de funciones.

Nota: En C ++, muchas funciones de biblioteca estándar están sobrecargadas. Por ejemplo, la sqrt()función puede tomar double, float, int,etc. como parámetros. Esto es posible porque la sqrt()función está sobrecargada en C ++.

Articulos interesantes...