chcę zrobić klasę, która przechowuje wskaźników funkcji, ale gdy chcę je przechowywać w zmiennych składowych otrzymuję ten błąd:C++ Przypisywanie funkcji wskaźnik do innego
invalid use of member function (did you forget the '()' ?)
¿Gdzie jest moja błąd?
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);
};
Dzięki
można dodać na co linia pojawia się błąd? Również jeśli używasz C++ 11 powinieneś rzucić okiem na 'std :: function' zamiast surowych wskaźników funtion. – Hayt
Powinieneś naprawdę użyć 'typedef' do swoich wskaźników funkcji. To rozwiązałoby również ten problem. Lub nawet użyj 'std :: function', jeśli możesz. – nvoigt