Introducción a las funciones en C++: definir, llamar, parámetros
Aprende funciones en C++, incluyendo definición, llamadas y parámetros para crear programas reutilizables.
En C++, las funciones son bloques de código reutilizables que realizan una tarea específica. Ayudan a mantener los programas grandes organizados, legibles y fáciles de mantener. En este artículo, aprenderemos paso a paso cómo definir, llamar, usar parámetros y manejar valores de retorno en funciones.
1. ¿Qué es una función?
Una función es un bloque de código independiente que realiza una operación y, opcionalmente, devuelve un valor. La estructura general de una función en C++ es la siguiente:
tipo_de_retorno nombreFuncion(parámetros) {
// Cuerpo de la función
}
Ejemplo:
int Sumar(int a, int b) {
return a + b;
}
Esta función toma dos enteros y devuelve su suma.
2. Los 4 componentes básicos de una función
| Componente | Descripción | Ejemplo |
|---|---|---|
| Tipo de retorno | El tipo de dato que devuelve la función | int |
| Nombre de la función | El nombre usado al llamar la función | Sumar |
| Lista de parámetros | Los valores que la función recibe | (int a, int b) |
| Cuerpo | El código que se ejecuta dentro de la función | { return a + b; } |
3. Definir y llamar una función
Las funciones pueden llamarse dentro o fuera de la función main().
Generalmente, se definen fuera y se llaman dentro de main().
#include <iostream>
using namespace std;
int Sumar(int x, int y) {
return x + y;
}
int main() {
int resultado = Sumar(5, 8);
cout << "Suma: " << resultado << endl;
return 0;
}
Al llamar la función, los parámetros se pasan en orden.
En la llamada Sumar(5, 8), x=5 y y=8.
4. Tipo de retorno (return)
Una función puede devolver un resultado al lugar donde fue llamada.
Este valor se especifica con la instrucción return.
double Promedio(int a, int b, int c) {
return (a + b + c) / 3.0;
}
int main() {
cout << "Promedio: " << Promedio(70, 85, 90) << endl;
}
Si la función no devuelve ningún valor, se declara con el tipo void.
void MostrarMensaje() {
cout << "¡Hola, C++!" << endl;
}
5. Uso de parámetros
Las funciones pueden recibir parámetros para realizar operaciones dinámicas. Los parámetros pueden pasarse por valor o por referencia.
Paso por valor
Se pasa una copia de la variable a la función. La variable original no se modifica.
void CambiarValor(int x) {
x = x + 10;
}
int main() {
int numero = 5;
CambiarValor(numero);
cout << numero; // 5
}
Paso por referencia
El símbolo & permite pasar la variable directamente.
Los cambios realizados dentro de la función afectan a la variable original.
void CambiarValor(int &x) {
x = x + 10;
}
int main() {
int numero = 5;
CambiarValor(numero);
cout << numero; // 15
}
6. Parámetros predeterminados
En C++, los parámetros de una función pueden tener valores por defecto. Si no se pasa un argumento al llamar la función, se usa el valor predeterminado.
void Saludar(string nombre = "Visitante") {
cout << "Hola, " << nombre << "!" << endl;
}
int main() {
Saludar(); // Hola, Visitante!
Saludar("Ana"); // Hola, Ana!
}
7. Declaración de función (Prototipo)
Si se llama una función antes de que el compilador conozca su definición, se producirá un error. En tal caso, la firma (prototipo) de la función se declara antes.
// Declaración
int Sumar(int a, int b);
int main() {
cout << Sumar(3, 4);
}
// Definición
int Sumar(int a, int b) {
return a + b;
}
8. Sobrecarga de funciones (Function Overloading)
En C++, se pueden definir varias funciones con el mismo nombre, siempre que difieran en el número o tipo de parámetros.
int Sumar(int a, int b) {
return a + b;
}
double Sumar(double a, double b) {
return a + b;
}
int main() {
cout << Sumar(3, 4) << endl; // versión int
cout << Sumar(2.5, 4.1) << endl; // versión double
}
9. Ejemplo: Cálculos geométricos
El siguiente ejemplo muestra cómo se pueden usar varias funciones para diferentes tipos de cálculos.
#include <iostream>
using namespace std;
double AreaCuadrado(double lado) {
return lado * lado;
}
double AreaRectangulo(double ancho, double alto) {
return ancho * alto;
}
int main() {
cout << "Área del cuadrado: " << AreaCuadrado(4) << endl;
cout << "Área del rectángulo: " << AreaRectangulo(3, 5) << endl;
return 0;
}
Este ejemplo muestra cómo se pueden definir y llamar varias funciones dentro del mismo programa.
10. TL;DR
- Las funciones hacen que las tareas repetitivas sean modulares.
returndevuelve un valor;voidno devuelve ninguno.- Los parámetros pueden pasarse por valor o por referencia.
- Los parámetros predeterminados permiten llamadas más flexibles.
- Pueden existir varias funciones con el mismo nombre (sobrecarga).
- Todos los ejemplos pueden ejecutarse en Visual Studio 2022 o GCC 11+.