У меня есть некоторые проблемы с пониманием указателей функций. Хотя я прочитал много тем, я все еще испытываю проблемы с последующим случаем.КАК: Указатели функций класса (C++)
Мой пример прост - у меня есть класс джойстика, который имеет некоторые указатели на функции, а также функции, с помощью которых эти указатели могут быть назначены, и я не знаю, как это сделать должным образом.
Постараюсь держать его просто:
class Joystick {
void (Player::*OnShootKeyPressed)(); // pointer that takes no arguments and returns nothing
void SetCallback(void (Player::*f)) {
OnShotKeyPressed = f;
}
}
class Player {
void OnShootAction() { ...do the shooting...}
void Initialize() {
Joystick* joy = pInputMng->GetJoystick();
joy->SetCallback(&Player::OnShootAction());
}
}
--Edited после капитана Obvlious comment--
Это один небольшой пример того, что я хочу достичь, и я не похоже, правильно понимают эти указатели функций. Что я делаю не так?
Я ценю всю помощь заранее!
Вы не можете передать указатель на функцию-член как указатель на функцию, они не одно и то же. FWIW - синтаксис '& Player :: OnShootAction' не' & OnShootAction() '. –
Пройдите через этот https://isocpp.org/wiki/faq/pointers-to-members. – user4581301
Спасибо @CaptainObvlious, но я до сих пор не могу заставить его работать. – Blodyavenger