Punteros a funciones
Teniendo en cuenta que el nombre de una función es en verdad la dirección de memoria donde comienza el código, los punteros a funciones contienen la dirección de memoria de la función a la que apunta, y se pueden pasar y retornar entre funciones.
#include <iostream>
usingnamespace std;
bool functionA(int, int, bool(*)(int));//Prototipo
bool functionB(int);//Prototipo
void main()
{
int x =113, y =226;
if( functionA( x, y, functionB ))
cout<<"\nEl resultado es verdadero";
else
cout<<"\nEl resultado es falso";
}
bool functionA(int param1, int param2, bool(*verificar)(int))
{
if(((*verificar)( param1 ))&&((*verificar)( param2 )))
returntrue;
}
bool functionB(int param )
{
if( param >100)
returntrue;
else
returnfalse;
}
En el ejemplo anterior podrá ver que en la definición de los prototipos, la función functionA recibe tres parámetros, siendo el tercer parámetro un puntero a la funcion functionB, practicamente copiando el prototipo sin el nombre. Cuando se ejecuta functionA, se le pasa como parametro el nombre de la función.
No hay comentarios:
Publicar un comentario