C++将函数指针指向另一个

Osc*_*enz 5 c++ pointers

我想做一个存储函数指针的类,但是当我想将它们存储在成员变量中时,我得到这个错误:

无效使用成员函数(你忘记了'()'吗?)

¿我的错误在哪里?

class Button {
public:
    Button(PS3USB * ps3, ButtonEnum button, void (*onPress)(void) = nullptr,
            void (*onRelease)(void) = nullptr) {
        PS3 = ps3;
        status = false;
        ERROR --->  onPressFunction = onPress; <--- ERROR
        ERROR --->  onReleaseFunction = onRelease; <--- ERROR
        id = button;
    }
    void check() {
        if (PS3->getButtonClick(id) && !status) {
            if (onPressFunction != nullptr) {
                onPressFunction();
            }
            status = !status;
        } else if (!PS3->getButtonClick(id) && status) {
            if (onReleaseFunction != nullptr) {
                onReleaseFunction();
            }
            status = !status;
        }
    }
private:
    bool status;
    PS3USB * PS3;
    ButtonEnum id;
    void * onPressFunction(void);
    void * onReleaseFunction(void);

};
Run Code Online (Sandbox Code Playgroud)

谢谢

Ser*_*gio 9

void * onPressFunction(void);
void * onReleaseFunction(void);
Run Code Online (Sandbox Code Playgroud)

这些是成员函数的声明,而不是函数指针.要声明指向函数的指针,请使用:

void (*onPressFunction)(void);
void (*onReleaseFunction)(void);
Run Code Online (Sandbox Code Playgroud)