Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Sobrecarga de Funciones en C++: Guía Práctica

Sobrecarga de Funciones en C++

Descubre cómo C++ te permite definir múltiples funciones con el mismo nombre pero diferentes firmas, ilustrado con ejemplos prácticos.

En C++, dos funciones pueden compartir el mismo nombre siempre que sus listas de parámetros difieran en tipo, número u orden. Estas variantes se llaman funciones sobrecargadas.

Por ejemplo:

// Mismo nombre, diferentes argumentos int test() { } int test(int a) { } float test(double a) { } int test(int a, double b) { }

Las cuatro declaraciones anteriores representan un conjunto de sobrecarga válido. Ten en cuenta que los tipos de retorno son irrelevantes para la resolución de sobrecarga; solo importa la lista de parámetros. Por ejemplo:

// Error de compilación: firmas idénticas int test(int a) { } double test(int b){ }

Aquí, ambas funciones tienen el mismo nombre, mismo tipo y mismo número de argumentos, por lo que el compilador rechaza el duplicado.


Ejemplo 1: Sobrecarga con Diferentes Tipos de Parámetros

// Calcular valor absoluto para int y float #include <iostream> using namespace std; // versión float float absoluto(float var){ return (var < 0.0f) ? -var : var; } // versión int int absoluto(int var){ return (var < 0) ? -var : var; } int main(){ cout << "Valor absoluto de -5 = " << absoluto(-5) << endl; cout << "Valor absoluto de 5.5 = " << absoluto(5.5f) << endl; return 0; }

Salida

Valor absoluto de -5 = 5 Valor absoluto de 5.5 = 5.5

Este programa sobrecarga absoluto(); el compilador selecciona la versión apropiada basada en el tipo del argumento.


Ejemplo 2: Sobrecarga con Diferente Número de Parámetros

#include <iostream> using namespace std; // Versión de dos parámetros void mostrar(int var1, double var2){ cout << "Entero: " << var1; cout << " & Double: " << var2 << endl; } // Versión de un parámetro double void mostrar(double var){ cout << "Double: " << var << endl; } // Versión de un parámetro int void mostrar(int var){ cout << "Entero: " << var << endl; } int main(){ int a = 5; double b = 5.5; mostrar(a); mostrar(b); mostrar(a, b); return 0; }

Salida

Entero: 5 Double: 5.5 Entero: 5 & Double: 5.5

La llamada a mostrar() resuelve a la sobrecarga correcta basada en el número y tipo de argumentos.


Nota: Las funciones de biblioteca estándar como sqrt() están fuertemente sobrecargadas, aceptando int, float, double y más, proporcionando flexibilidad a los desarrolladores.

Lenguaje C

  1. Dominando la Sobrecarga de Métodos en C#: Conceptos, Ejemplos y Buenas Prácticas
  2. Dominando la Sobrecarga de Constructores en C#
  3. Dominando los Operadores en C++: Guía Completa con Ejemplos Prácticos
  4. Comentarios en C++: Mejores Prácticas para Código Legible y Mantenible
  5. Cómo Pasar Arrays a Funciones en C++: Guía Práctica
  6. Funciones y clases amigas en C++: dominando el control de acceso
  7. Cómo pasar arrays 1D y 2D a funciones en C – Guía práctica
  8. Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
  9. Funciones en C++ Explicadas con Ejemplos de Código Prácticos
  10. Dominando funciones en C: Estructura, declaración y mejores prácticas
  11. Dominando la Sobrecarga en C++: Funciones y Operadores Explicados