我想创建一个存储函数指针的类,但当我想将它们存储在成员变量中时,出现了以下错误:
无效使用成员函数(您是否忘记了“()”?)
我的错误在哪里?
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);
};
谢谢
std::function
而不是裸函数指针。 - Hayttypedef
。这也可以解决这个问题。如果可能的话,甚至可以使用std::function
。 - nvoigt