Estoy tratando de pasar una función miembro dentro de una clase a una función que toma un puntero de clase de función miembro. El problema que estoy teniendo es que no estoy seguro de cómo hacer esto correctamente dentro de la clase con este puntero. ¿Alguien tiene sugerencias?¿Cómo se pasa un puntero de función miembro?
Aquí es una copia de la clase que se pasa a la función miembro:
class testMenu : public MenuScreen{
public:
bool draw;
MenuButton<testMenu> x;
testMenu():MenuScreen("testMenu"){
x.SetButton(100,100,TEXT("buttonNormal.png"),TEXT("buttonHover.png"),TEXT("buttonPressed.png"),100,40,&this->test2);
draw = false;
}
void test2(){
draw = true;
}
};
La función x.SetButton (...) está contenido en otra clase, donde "objeto" es una plantilla.
void SetButton(int xPos, int yPos, LPCWSTR normalFilePath, LPCWSTR hoverFilePath, LPCWSTR pressedFilePath, int Width, int Height, void (object::*ButtonFunc)()) {
BUTTON::SetButton(xPos, yPos, normalFilePath, hoverFilePath, pressedFilePath, Width, Height);
this->ButtonFunc = &ButtonFunc;
}
Si alguien tiene algún consejo sobre cómo puedo enviar correctamente esta función para poder utilizarla más adelante.
'Un puntero a la clase' - ¿debería ser' Un puntero al objeto'? – Vorac
Muchas gracias. No se pudo deducir que la sintaxis es algo así como ((ButtonObj) -> * (ButtonFunc))() – nathanesau