c typedef class function pointer