Posts

Showing posts with the label punteros

C++: Punteros a funciones miembro

Versión en inglés / English version Éste es uno de los temás más avanzados de C++, casi un arcano. Tanto en C como en C++ tenemos punteros a funciones, que nos permiten seleccionar dinámicamente la función a invocar entre varias que tienen el mismo encabezado. El ejemplo típico de aplicación es hacer una función que ordene una colección de diferentes formas, usando para comparar elementos una función invocado a través de un puntero. Esto puede hacerse en C++, pero a priori sólo con funciones static. Si queremos hacerlo con funciones miembro de una clase, debemos usar este mecanismo exclusivo de C++. La sintaxis para declarar un puntero a función miembro es similar a la de los punteros a función, con el agregado de especificar la clase: // Sintaxis Genérica // retornoFuncion (NombreClase::*nombreVariablePunteroAMiembro)( argumentosFuncion ); // Ejemplo concreto LRESULT (CCoConsola3D::*onMouseWheelHandler) ( UINT, WPARAM, LPARAM, BOOL& ); La línea del ejemplo declara ...