jueves, 11 de agosto de 2011

Programación en C++/Punteros.."Punteros a funciones"


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