Sobrecarga de funciones de C++
Sobrecarga de funciones de C++
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 devolución de estas 4 funciones no son los mismos. Las funciones sobrecargadas pueden o no tener diferentes tipos de devolución, 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 la misma cantidad de argumentos. Por lo tanto, el compilador arrojará un error.
Ejemplo 1:Sobrecarga usando diferentes tipos de parámetros
// Program to compute absolute value
// Works for both int and float
#include <iostream>
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
Absolute value of -5 = 5 Absolute value of 5.5 = 5.5
En este programa, sobrecargamos el 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.
Ejemplo 2:Sobrecarga usando diferente número de parámetros
#include <iostream>
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
Integer number: 5 Float number: 5.5 Integer number: 5 and double number: 5.5
Aquí, el display()
La función se llama tres veces con diferentes argumentos. Dependiendo del número y tipo de argumentos pasados, el display()
correspondiente se llama a la función.
El tipo de retorno de todas estas funciones es el mismo, pero ese no tiene por qué ser el caso de la sobrecarga de funciones.
sqrt()
la función puede tomar double
, float
, int,
etc. como parámetros. Esto es posible porque el sqrt()
la función está sobrecargada en C++.
Lenguaje C
- Sobrecarga del método C#
- Sobrecarga del constructor de C#
- Operadores de C++
- Comentarios de C++
- Pasar matriz a una función en programación C++
- Función amiga de C++ y Clases amigas
- Pasar arreglos a una función en C
- Sobrecarga de operadores de C++ con ejemplos
- Funciones de C++ con ejemplos de programas
- C - Funciones
- Sobrecarga de C++ (operador y función)