SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: AnioN en Viernes 30 de Marzo de 2007, 18:11

Título: Punteros A Funciones
Publicado por: AnioN en Viernes 30 de Marzo de 2007, 18:11
Hola, debido a que surgio un thread muy interesante de punteros a punteros, me gustarian si es posible explicar un poco para que sirven los punteros a funciones y como se utilizan.
Título: Re: Punteros A Funciones
Publicado por: Eternal Idol en Viernes 30 de Marzo de 2007, 18:14
Por ejemplo te sirven para usar las funciones de una DLL cargada dinamicamente.

http://msdn2.microsoft.com/en-us/library/ms686944.aspx (http://msdn2.microsoft.com/en-us/library/ms686944.aspx)
Título: Re: Punteros A Funciones
Publicado por: JuanK en Viernes 30 de Marzo de 2007, 18:57
Cuando se accede un método dentro de una clase se esta usando el puntero a dicho método en memoria.

No conozco detalles de la implementación de eso en C/C++ pero se pueden pasar punteros a funciones como parámetro de otra función para que esta ultima internamente la use según se requiera. Esto en el mundo de POO se conoce como delegados.
Título: Re: Punteros A Funciones
Publicado por: JuanK en Viernes 30 de Marzo de 2007, 19:12
http://www.newty.de/fpt/index.html (http://www.newty.de/fpt/index.html)

http://linuxquality.sunsite.dk/articles/memberpointers/ (http://linuxquality.sunsite.dk/articles/memberpointers/)

http://www.cprogramming.com/tutorial/function-pointers.html (http://www.cprogramming.com/tutorial/function-pointers.html)

http://publications.gbdirect.co.uk/c_book/...n_pointers.html (http://publications.gbdirect.co.uk/c_book/chapter5/function_pointers.html)
Título: Re: Punteros A Funciones
Publicado por: Enko en Viernes 30 de Marzo de 2007, 21:25
Tambien se usa cuando tenes que crear una GUI usando la API de Windows, la Estructura WNDCLASS tiene un campo lpfWindProc que apunta al procedimiento de ventana que tiene que ser declarado en el mismo código.

http://winapi.conclase.net/curso/index.php?cap=004 (http://winapi.conclase.net/curso/index.php?cap=004)