Professional Documents
Culture Documents
Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación
de Visual Studio 2017 RC.
Una función es un bloque de código que realiza alguna operación. Una función puede definir
opcionalmente parámetros de entrada que permiten a los llamadores pasar argumentos a la
función. Una función también puede devolver un valor como salida. Las funciones son útiles para
encapsular las operaciones comunes en un solo bloque reutilizable, idealmente con un nombre
que describa claramente lo que hace la función. La función siguiente acepta dos enteros de un
llamador y devuelve su suma; a y b son parámetros de tipo int.
return a + b;
La función puede invocarse, o llamarse, desde cualquier número de partes del programa. Los
valores que se pasan a la función son los argumentos, cuyos tipos deben ser compatibles con los
tipos de parámetro de la definición de función.
int main()
No hay ningún límite práctico para la longitud de la función, pero un buen diseño tiene como
objetivo funciones que realizan una sola tarea bien definida. Los algoritmos complejos deben
dividirse en funciones más sencillas y fáciles de comprender siempre que sea posible.
Las funciones definidas en el ámbito de clase se denominan funciones miembro. En C++, a
diferencia de otros lenguajes, una función también pueden definirse en el ámbito de espacio de
nombres (incluido el espacio de nombres global implícito). Estas funciones se denominan
funciones libres o funciones no miembro; se usan ampliamente en la biblioteca estándar.
Una declaración de función mínima consiste en el tipo de valor devuelto, el nombre de función y la
lista de parámetros (que puede estar vacía), junto con las palabras clave opcionales que
proporcionan instrucciones adicionales para el compilador. Una definición de función se compone
de una declaración más el cuerpo, que es todo el código incluido entre llaves. Una declaración de
función seguida de un punto y coma puede aparecer en varios lugares de un programa. Debe
aparecer antes de cualquier llamada a esa función en cada unidad de traducción. La definición de
función debe aparecer solo una vez en el programa, según la regla de una definición (ODR).
El tipo de valor devuelto, que especifica el tipo del valor que devuelve la función, o void si no se
devuelve ningún valor. En C++11, auto es un tipo de valor devuelto válido que indica al compilador
que debe inferir el tipo de la instrucción return. En C++14, también se permite decltype(auto). Para
obtener más información, consulte más adelante Deducción de tipos en tipos de valor devueltos.
El nombre de función, que debe comenzar con una letra o un carácter de subrayado y no puede
contener espacios. En general, un carácter de subrayado inicial en los nombres de función de la
biblioteca estándar indica funciones de miembro privado o funciones no miembro que no están
pensadas para que las use el código.
La lista de parámetros, que es un conjunto delimitado por llaves y separado por comas de cero o
más parámetros que especifican el tipo y, opcionalmente, un nombre local mediante el cual se
puede acceder a los valores de dentro del cuerpo de la función.
Supongamos, para ejemplificar, que queremos un programa que imprima las primeras 10 potencias
de 2 y de 3.
Para ello, definiremos una función entera potencia que devuelva, como resultado, el cálculo de un
entero n
elevado a una potencia entera positiva m, e invocaremos la función potencia desde main con los
correspondientes argumentos.
#include <stdio.h>
main()
int i ;
i, potencia(3, i));
return 0;
int i, p;
p = 1;
p = p * n;
return p;
En cada llamada se pasan dos parámetros actuales o reales (o argumentos) a potencia y esta
retorna un valor
función.
La función potencia retorna un valor entero (int) a la función invocante (en este caso a main). Esto
ocurre
al ejecutarse la sentencia
return p;
Sin embargo, no todas las funciones necesitan retornar un valor. En este caso, como veremos en la
sección
Hay dos maneras de restituir el control a la función invocante sin devolver valor alguno. Una forma
de hacerlo es
return;
Al igual que para las variables, cuando una función se va a usar en un programa, o cuando una
función se define en otro fichero (funciones externas), se debe declarar antes del lugar donde se
define. La declaración de una función consiste en especificar el tipo de datos que va a retornar la
función. Esto es obligatorio cuando vamos a usar una función que no devuelve un entero. Además,
en la declaración se puede especificar el número de argumentos y su tipo. Una declaración típica
de función es:
Esto avisa al compilador de que la función ya existe, o que la vamos a definir después.
La lista de argumentos con tipo difiere de la lista de argumentos antes presentada en que el tipo de
cada argumento se coloca dentro de la lista, antes de su correspondiente identificador, como
hacíamos en la definición de variables. Por ejemplo:
Este tipo de especificación del tipo de argumentos también se puede emplear en la definición de
las funciones, aunque lo contrario no es posible. Así, el programa:
#include <stdio.h>
main()
char caracter;
return;
/*
*/
return letra;
}