Hasta ahora, hemos definido las funciones en seguida de las cabeceras del programa. Una vez que se define la función hemos procedido a desarrollar el código de la función y al final escribimos el programa principal. Si te detienes a observar un poco, te darás cuenta que este procedimiento tiene una lógica, y esa lógica es la de definir primero lo que vas a usar y ya que definiste esa función la puedes utilizar.
Sin embargo muchas veces será necesario que definas las funciones que sabes que necesitarás y después las implementarás (u otra persona de tu equipo) para poder desarrollar el código principal sin preocuparte en ese momento por los detalles de la implementación. En ése momento solo te interesará conocer cómo invocarás a la función y qué parámetros requiere.
A esta forma de definir la cabecera de una función y hasta después codificarla, se denomina Prototipos de Función
Como acabo de mencionar, el objetivo de definir prototipos de función consiste en poder desarrollar la aplicación principal sin detenernos en los detalles de la función utilizada, sino hasta que llega el momento. Otra razón todavía más relevante de definir prototipos de función tiene que ver con la definición y uso de librerías de funciones. Pero el punto “culminante” toma sentido al momento de trabajar con objetos.
Para definir un prototipo de función sólo debemos indicar la cabecera de la función, después definimos nuestro programa principal, y después definimos las funciones declaradas.
//Definición de prototipos, nota que llevan ";" al final <tipo_valor_retorno><identificador>(<lista_parámetros>); <tipo_valor_retorno><identificador>(<lista_parámetros>); // Programa principal. int main() { [sentencias] } // Se definen las funciones <tipo_valor_retorno><identificador>(<lista_parámetros>) { [sentencias] }
Primero expresamos las cabeceras de las funciones que utilizaremos (prototipos), a continuación desarrollamos nuestro programa principal y finalmente codificamos las funciones definidas.
Veamos un ejemplo, definiremos una simple función en la forma que hemos hecho hasta el momento, y en seguida redefiniremos en programa para que utilice prototipos.
// cpp_62_funciones_proto.cpp // Este programa forma parte del tutorial de introducción al lenguaje C++ // http://a.ehack.info/leguaje-c-introduccion/ // Se define un par de funciones que en el siguiente ejemplo // eb61_funciones_proto2.cppse definirán como prototipos // 2018, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int esMayor(int a, int b) { //Devuelve el número mayor entero de 2 números dados como parámetros if (a >= b) { return a; } else { return b; } return 0; } int esMenor(int a, int b) { //Devuelve el número menor entero de 2 números dados como parámetros if (a <= b) { return a; } else { return b; } return 0; } int main() { int num1, num2; cout<<"Escribe un número entero: "; cin >> num1; cout<<"Escribe otro número entero: "; cin >> num2; cout<<"El mayor número introducido es: " << esMayor(num1, num2) << endl; cout<<"El menor número introducido es: " << esMenor(num1, num2); return 0; }
A continuación presentamos la misma función definiendo el prototipo de la función. El cual como ya mencionamos, consiste en definir la cabecera de la función, la utilizamos, después la definimos.
// eb61_funciones_proto2.cpp // Este programa forma parte del tutorial de introducción al lenguaje C++ // http://a.ehack.info/leguaje-c-introduccion/ // Se define un par de funciones utilizando prototipos // 2018, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int esMayor(int a, int b); // Definimos el prototipo de nuestra función int esMenor(int a, int b); // Definimos el prototipo de nuestra función int main() { int num1, num2; cout<<"Escribe un número entero: "; cin >> num1; cout<<"Escribe otro número entero: "; cin >> num2; cout<<"El mayor número introducido es: " << esMayor(num1, num2) << endl; cout<<"El menor número introducido es: " << esMenor(num1, num2); return 0; } // Definimos las funciones definidas en la cabecera. int esMayor(int a, int b) { //Devuelve el número mayor entero de 2 números dados como parámetros if (a >= b) { return a; } else { return b; } return 0; } int esMenor(int a, int b) { //Devuelve el número menor entero de 2 números dados como parámetros if (a <= b) { return a; } else { return b; } return 0; }
Probablemente consideres trabajo adicional e innecesario el uso de prototipos de función, sin embargo debes saber que es la puerta de entrada a conceptos muy poderosos: Las librerías y las Clases (Objetos). Resulta conveniente que estés familiarizado en su uso.
Funciones IV en C++ by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…
En esta entrada te presento 24 de las listas negras más comunes que los servidores…
ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…
WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…
Whois realiza el registro de registro para el nombre de dominio o la dirección IP…
VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…