certmundo.
es‑mx

6 min de lectura

¿Cómo crear y usar funciones en C++?

Una función en C++ es un bloque de código con nombre que puedes ejecutar cuantas veces quieras desde cualquier parte de tu programa.

Imagina que eres cajero en Liverpool

Cada vez que un cliente llega, haces los mismos pasos: saludas, calculas el total, aplicas el descuento y cobras. Si escribieras esos pasos completos para cada cliente, tu código sería enorme y difícil de mantener. Las funciones resuelven ese problema. Defines el proceso una sola vez y lo llamas cuando lo necesitas. Es como tener una receta guardada: no reescribes los pasos cada vez que cocinas.

El Sistema DART: cómo estructurar una función

Para crear cualquier función en C++, usa el sistema DART:

  • Dato de retorno: ¿qué tipo de valor regresa la función?
  • Anombre: cómo vas a llamarla
  • Recibe: qué datos necesita para trabajar (parámetros)
  • Tarea: el código que ejecuta dentro de las llaves

Ese orden siempre es el mismo. Si lo memorizas, nunca olvidarás cómo escribir una función.

La estructura básica

Así se ve una función en C++:

tipo_de_retorno nombreDeLaFuncion(tipo parametro) {
    // código aquí
    return valor;
}

Vamos parte por parte con un ejemplo real.

Función que calcula el precio con IVA

En México, el IVA es del 16%. Si trabajas en el área de sistemas de Bimbo y necesitas calcular precios con impuesto, podrías escribir esto:

#include <iostream>
using namespace std;

double calcularPrecioConIVA(double precio) {
    double total = precio * 1.16;
    return total;
}

int main() {
    double precioBase = 250.0;
    double precioFinal = calcularPrecioConIVA(precioBase);
    cout << "Precio con IVA: $" << precioFinal << endl;
    return 0;
}

Salida del programa:

Precio con IVA: $290

La función calcularPrecioConIVA recibe un número double y regresa otro double. Puedes llamarla cien veces con diferentes precios y siempre funcionará igual.

Funciones sin valor de retorno: void

No todas las funciones necesitan regresar un valor. Algunas solo ejecutan una acción, como mostrar un mensaje. Para esas funciones usas void como tipo de retorno.

#include <iostream>
using namespace std;

void mostrarBienvenida(string nombre) {
    cout << "Bienvenido a FEMSA, " << nombre << "!" << endl;
}

int main() {
    mostrarBienvenida("Carlos");
    mostrarBienvenida("Sofía");
    return 0;
}

Salida del programa:

Bienvenido a FEMSA, Carlos!
Bienvenido a FEMSA, Sofía!

Observa que una función void no tiene return. Solo ejecuta su tarea y termina.

Funciones con múltiples parámetros

Puedes pasar más de un valor a una función. Separa los parámetros con comas dentro de los paréntesis.

Ejemplo: calcular el aguinaldo de un empleado. En México, la Ley Federal del Trabajo obliga a pagar al menos 15 días de salario como aguinaldo.

#include <iostream>
using namespace std;

double calcularAguinaldo(double salarioDiario, int diasAguinaldo) {
    return salarioDiario * diasAguinaldo;
}

int main() {
    double salario = 18500.0;
    double salarioDiario = salario / 30.0;
    double aguinaldo = calcularAguinaldo(salarioDiario, 15);
    cout << "Aguinaldo: $" << aguinaldo << endl;
    return 0;
}

Salida del programa:

Aguinaldo: $9,250

Esta función recibe dos parámetros: salarioDiario y diasAguinaldo. Los combina y regresa el resultado. Puedes usarla para cualquier empleado, solo cambia los valores que le envías.

Cómo llamar una función correctamente

Para usar una función, escribe su nombre seguido de paréntesis y los valores que necesita:

double resultado = calcularAguinaldo(616.67, 15);

Esos valores que envías se llaman argumentos. Los parámetros son los nombres dentro de la función. Los argumentos son los valores reales que le pasas al llamarla. La diferencia es sutil pero importante.

Declara la función antes de usarla

C++ lee el código de arriba hacia abajo. Si llamas una función antes de definirla, el compilador no la encontrará y marcará un error. Tienes dos soluciones:

Opción 1: Define la función antes de main().

Opción 2: Usa una declaración adelantada (prototipo) al inicio del archivo.

#include <iostream>
using namespace std;

// Prototipo: solo la firma, sin el cuerpo
double calcularDescuento(double precio, double porcentaje);

int main() {
    double resultado = calcularDescuento(1200.0, 0.10);
    cout << "Precio con descuento: $" << resultado << endl;
    return 0;
}

// Definición completa más abajo
double calcularDescuento(double precio, double porcentaje) {
    return precio - (precio * porcentaje);
}

Salida del programa:

Precio con descuento: $1,080

El prototipo le dice al compilador: "esta función existe, confía en mí". Más adelante, cuando el compilador llega a la definición completa, la conecta con las llamadas anteriores.

Errores comunes al usar funciones

Error 1: olvidar el return

Si tu función promete regresar un int o double, pero no escribes return, el compilador te avisará o regresará basura. Siempre verifica que cada camino posible del código tenga su return.

Error 2: confundir los tipos de parámetros

Si tu función espera un double y le mandas un int, puede funcionar... pero a veces produce resultados inesperados por conversión implícita. Sé explícito: si la función trabaja con decimales, pásale decimales.

Error 3: modificar variables externas sin querer

En C++, cuando pasas una variable a una función, por defecto se crea una copia. Si modificas esa copia dentro de la función, la variable original no cambia. Esto es bueno para evitar errores, pero puede confundirte si esperas que la variable original se actualice.

void intentarDuplicar(int numero) {
    numero = numero * 2; // solo cambia la copia
}

int main() {
    int ventas = 500;
    intentarDuplicar(ventas);
    cout << ventas << endl; // sigue siendo 500
    return 0;
}

Si necesitas modificar la variable original, aprenderás sobre referencias (&) más adelante. Por ahora, recuerda que las funciones trabajan con copias.

Error 4: nombres poco descriptivos

Evita nombres como f1() o calc(). Usa nombres que expliquen qué hace la función: calcularIVA(), validarEdad(), mostrarMenu(). Tu código se leerá como una historia.

Funciones dentro de un programa completo

Aquí tienes un ejemplo que combina todo lo que aprendiste en este curso: variables, condicionales, ciclos y funciones.

#include <iostream>
using namespace std;

double calcularTotal(double precio, int cantidad) {
    return precio * cantidad;
}

void mostrarResumen(string producto, double total) {
    cout << "Producto: " << producto << endl;
    cout << "Total a pagar: $" << total << endl;
}

int main() {
    string productos[3] = {"Gansito", "Nito", "Pingüino"};
    double precios[3] = {12.0, 10.0, 15.0};
    int cantidades[3] = {4, 6, 2};

    for (int i = 0; i < 3; i++) {
        double total = calcularTotal(precios[i], cantidades[i]);
        mostrarResumen(productos[i], total);
        cout << "---" << endl;
    }

    return 0;
}

Salida del programa:

Producto: Gansito
Total a pagar: $48
---
Producto: Nito
Total a pagar: $60
---
Producto: Pingüino
Total a pagar: $30
---

Este programa usa funciones para separar responsabilidades. calcularTotal solo calcula. mostrarResumen solo muestra. Cada función hace una cosa bien. Eso se llama principio de responsabilidad única y es un hábito profesional desde el primer día.

Lo que aprendiste en este curso

Llegaste al final. Aquí está el resumen de los ocho temas que dominaste:

  1. Qué es C++ y cómo funciona un programa básico.
  2. Variables y tipos de datos para guardar información.
  3. Operadores para hacer cálculos y comparaciones.
  4. Condicionales if, else y switch para tomar decisiones.
  5. Ciclos for y while para repetir acciones.
  6. Arreglos para manejar colecciones de datos.
  7. Entrada y salida con cin y cout.
  8. Funciones para organizar y reutilizar tu código.

Tus próximos pasos

Ahora que conoces las bases, aquí tienes una ruta concreta para seguir mejorando:

  • Practica a diario: Escribe un programa pequeño cada día. No importa si es simple. La constancia construye habilidad.
  • Resuelve problemas reales: Crea una calculadora de nómina, un programa que valide el RFC, o uno que calcule comisiones de ventas como las de Mercado Libre.
  • Aprende sobre punteros y referencias: Son el siguiente gran tema en C++ y te dan control total sobre la memoria.
  • Explora la Biblioteca Estándar (STL): Tiene herramientas listas para usar: listas, mapas, algoritmos de búsqueda y ordenamiento.
  • Comparte tu código: Sube tus proyectos a GitHub. Los reclutadores de empresas tecnológicas en México revisan portafolios públicos.

La diferencia entre un programador principiante y uno profesional no es el talento: es cuántos problemas reales decidió resolver.

Puntos clave

  • Una función se define con tipo de retorno, nombre, parámetros y cuerpo. Usa el sistema DART para no olvidar ninguna parte.
  • Usa `void` cuando tu función solo ejecuta una acción y no necesita regresar ningún valor.
  • Declara siempre tu función antes de llamarla, o usa un prototipo al inicio del archivo para evitar errores de compilación.
  • Por defecto, C++ pasa copias de las variables a las funciones. La variable original no se modifica dentro de la función.
  • Cada función debe hacer una sola cosa y tener un nombre descriptivo. Eso hace tu código más fácil de leer, mantener y compartir.

Comparte esta lección:

¿Cómo crear y usar funciones en C++? | C++ para Principiantes | Certmundo