Funciones en C++
¿Qué es una función?
Es un bloque de código que realiza una tarea especifíca, Migueles, E. (2024). Un bloque de código es una serie de instrucciones ejecutadas en orden. Las funciones permiten reutilizar este bloque en distintas partes del programa, evitando repetir código.
¿Qué partes componen una función?
Al igual que cuando se crea una variable y se le asigna un tipo y un nombre, también sucede con las funciones. Las funciones pueden devolver o no un valor, y pueden recibir parámetros que tendrán algún rol en la lógica que se desarrolla dentro de la función. A continuación se detallan cada una de estas partes mencionadas:
Tipo
El tipo de dato de una función se define según el tipo de valor que se espera que la función devuelva como resultado. Los tipos más comunes son int, double, float, string, char, objetos, entre otros. Sin embargo, también existe el tipo de dato void, que se utiliza cuando no se espera devolver ningún valor y solo se necesita realizar una tarea sin un resultado específico que devolver.
- Sumar dos números enteros, el resultado de la suma será un número entero, por lo tanto, la función que realice esta operación debería ser de tipo int y devolver el resultado.
- Imprimir un mensaje en la pantalla, no es necesario devolver una cadena de texto. En este caso, se puede utilizar una función de tipo void que simplemente muestre el mensaje usando cout, ya que no hay un valor de retorno esperado.
Nombre de la función:
Al igual que cuando se le asigna un nombre a una variable, el nombre debe ser descriptivo que permita conocer la tarea de la función con leer su nombre. Este nombre será el que se invoque cuando se requiera utilizar la función en alguna parte del programa. Ejemplos:
- Para realizar el calculo de un promedio, la función podría llamarse calcularPromedio.
- Para devolver la longitud de una cadena, la función podría llamarse obtenerLongitudCadena o algo similar.
Parámetros:
Los parámetros en una función son necesarios cuando no se conocen los valores específicos que se necesitan para llevar a cabo la tarea dentro de la función. En esos casos, se envían valores o referencias como parámetros y se utilizan dentro de la función para realizar la tarea requerida.
Los parámetros permiten que una función sea más flexible y reutilizable al permitir que se adapte a diferentes situaciones utilizando diferentes valores en cada llamada. Ejemplo:
- Se solicita calcular el promedio en los cursos de Ciencias y Español se desconocen los valores de las notas, una función puede ser diseñada para recibir únicamente las dos notas como parámetros. En estos casos, el total de notas no es necesario especificarlo, ya que se sabe de antemano que son dos notas. Esto ilustra que en algunas ocasiones se requiere recibir parámetros, mientras que en otras ya se conocen los valores y no es necesario pasarlos como argumentos.
Hay dos formas de pasar parámetros:
Pasos por valor: se pasa una copia del valor de la variable al parámetro de la función. Esto significa que cualquier cambio realizado dentro de la función no afectará a la variable original fuera de la función. Es como darle una fotocopia de un documento en lugar del documento original.
Pasos por referencia: implica pasar la dirección de memoria de la variable como parámetro a la función. Esto permite que la función modifique directamente el valor de la variable original, ya que ambas están apuntando a la misma ubicación de memoria. Es como darle acceso directo al documento original en lugar de una copia. Cuando se pasa un valor por referencia, este va acompañado del operador &.
El paso por valor se usa principalmente para asegurar la inmutabilidad de los datos y evitar efectos secundarios no deseados. Mientras tanto, el paso por referencia se utiliza cuando se necesita modificar directamente una variable externa desde la función.
Cuerpo de la función:
Es la serie de instrucciones que se encuentran dentro de la función, es decir, dentro de las llaves {}. Estas instrucciones son las que se ejecutan cuando se llama a la función. El cuerpo de la función puede contener declaraciones de variables, estructuras de control como bucles y condicionales, llamadas a otras funciones, operaciones matemáticas y cualquier otra instrucción válida en el lenguaje de programación utilizado.
Estructura básica para crear una función
Para definir que tipo de dato debe ser la función, se necesita determinar si debe devolver un valor o no, si esta no devuelve valor será de tipo void, si esta devuelve un valor, definimos que tipo de valor devolverá y ese será el tipo correcto a otorgar a la función.
Ejemplos de funciones con pasos por valor
- Función que imprime el nombre y edad de un usuario.
- Imprimir un cuadrado de 5 líneas de asteriscos de ancho y alto.
En el ejemplo anterior no se reciben parámetros, ya que los valores requeridos para la lógica de la función son conocidos.
- Recibir un valor y mostrar su valor duplicado sin alterar la variable original pasada por parámetro.
Ejemplos de funciones con pasos por referencia
- Se realizará el ejemplo anterior, pero utilizando paso por referencia. Esto implica que se buscará alterar el valor dentro de la función y que esta pueda acceder al valor original, lo que permitirá demostrar la diferencia entre el paso por valor y el paso por referencia.
2. Recibir un string y agregarle la palabra "Hola" al inicio.
Notas:
- En la definición de una función, los nombres de los parámetros no tienen que coincidir con los nombres de las variables que se utilizan al llamar a esa función desde el main. Sin embargo, es crucial que los tipos de datos de los parámetros y las variables coincidan.
- Las variables creadas dentro de una función no son visibles fuera de esta, son llamadas variables locales.
- El paso por valor se usa cuando no se quieren modificar los valores originales y se prefieren copias para mantener la integridad de los datos. El paso por referencia se usa cuando se necesitan modificar los valores originales directamente, evitando copias para mejorar la eficiencia.
- Cuando se invoca una función, debe ser llamada por su nombre exacto como fue definida. Además, si la función fue creada con parámetros, se deben proporcionar sus respectivos valores al llamarla.




.png)




Comentarios
Publicar un comentario