Change button_id to be a function pointer field, not a virtual method