我尝试将函数名称作为参数传递,如下所示:
class RemoteControlMonitor {
private:
void (*rph)(unsigned int key);
void (*rrh)(unsigned int key);
public:
RemoteControlMonitor(void (*pressed)(unsigned int key),
void (*released)(unsigned int key) = 0) {
*rph = pressed;
*rrh = released;
lr_set_handler(remote_control_handler);
}
void runPressed() {
while (!shutdown_requested()) {
remote_key = 0;
remote_etype = 0;
wait_event(&remote_control_pressed, 0);
if (*rph) {
(*rph)(remote_key);
}
}
}
};
当我编译它时,错误如下,我该怎么办?
RemoteControlMonitor.H:在方法“RemoteControlMonitor::RemoteControlMonitor(void ( )(unsigned int), void ( )(unsigned int) = 0)”中:
RemoteControlMonitor.H:61:分配只读位置
RemoteControlMonitor.H:61: 赋值给void ()(unsigned int)' from
void (*)(unsigned int)'
RemoteControlMonitor.H:62:分配只读位置
RemoteControlMonitor.H:62:分配给void ()(unsigned int)' from
void (*)(unsigned int)'