cpp-parametros-funciones

Parámetros de funciones en C++

En C++, los parámetros son variables definidas que una función puede recibir cuando es invocada.

Los parámetros hacen que las funciones sean más flexibles y reutilizables al permitir el paso de diferentes datos a una misma función.

Parámetros por valor y por referencia

Parámetros por valor

Los parámetros por valor pasan una copia del valor original a la función. Cualquier modificación realizada en el parámetro dentro de la función no afectará al argumento original.

void funcion(int x)
{
    x = x * 2; // Modifica la copia local de x
}

Parámetros por referencia

Los parámetros por referencia pasan una referencia al argumento original a la función. Cualquier modificación realizada en el parámetro dentro de la función afectará al argumento original.

void funcion(int &x)
{
    x = x * 2; // Modifica el argumento original
}

Parámetros por puntero

Los parámetros por puntero pasan la dirección de memoria del argumento original a la función. La función puede acceder y modificar el valor del argumento original a través del puntero.

void funcion(int *ptr)
{
    *ptr = *ptr * 2; // Modifica el valor apuntado por ptr
}

Parámetros constantes

A veces, queremos que una función reciba un parámetro por referencia (para evitar tener que copiarlo), pero queremos asegurarnos de que el valor no se modifique. Para esto usamos const.

#include <iostream>

void MostrarValor(const int &numero) {
    std::cout << "Valor: " << numero << std::endl;
}

int main() {
    int valor = 5;
    MostrarValor(valor); // Muestra 5
    return 0;
}

Parámetros opcionales

En C++, los parámetros opcionales se pueden lograr usando valores predeterminados en la declaración de la función. Si un argumento no se pasa al llamar a la función, se usa el valor predeterminado.

#include <iostream>

void Saludar(const std::string &nombre = "Mundo") {
    std::cout << "Hola, " << nombre << "!" << std::endl;
}

int main() {
    Saludar();          // Muestra "Hola, Mundo!"
    Saludar("Juan");   // Muestra "Hola, Juan!"
    return 0;
}

Parámetros variádicos

C++ admite parámetros variádicos mediante el uso de plantillas y la biblioteca <cstdarg>. Los parámetros variádicos permiten a una función aceptar un número variable de argumentos.

#include <iostream>
#include <cstdarg>

void ImprimirNumeros(int cantidad, ...) {
    va_list args;
    va_start(args, cantidad);
    for (int i = 0; i < cantidad; ++i) {
        int numero = va_arg(args, int);
        std::cout << numero << " ";
    }
    va_end(args);
    std::cout << std::endl;
}

int main() {
    ImprimirNumeros(5, 1, 2, 3, 4, 5); // Muestra 1 2 3 4 5
    return 0;
}