[C con Clase] Puntero a objecto y puntero de metodo

Steven Davidson srd4121 en njit.edu
Mie Abr 25 14:17:34 CEST 2012


Hola Ezequiel,

On 4/25/2012 7:56 AM, Ezequiel Hernan Di Giorgi wrote:
> Hola en ocaciones haciendo uso de API's, envia a funciones callback,
> el puntero de mi objecto y el puntero de mi funcion.
>
> foo (&mi_objecto,&mi_clase::metodo);
>
> Yo me pregunto como hace esa funcion para llamar la funcion "metodo"
> del objecto "mi_objecto"?
>

Un uso típico es usar plantillas, asc que lo más seguro es que 'foo()' 
sea una función plantilla definida así,

template< typename T >
void foo( T *ptr, T::*pm )
{
   ptr->*pm();
}

Como puedes ver para este caso, usamos el operador ->* ya que el objeto 
es un puntero junto con el puntero a función miembro. Para más 
información, consulta el capítulo 41 de nuestro curso de C++ yendo a: 
http://c.conclase.net/curso/index.php?cap=041#inicio


Espero haber aclarado la duda.

Steven





Más información sobre la lista de distribución Cconclase