Make the "number" function in OutputPeripherals 'static'. That way it is common to all instances and can be called through a pointer.
static void number(byte number);
You may have to change the initialization of buttonA to:
buttonA.init(12,(void(*)) &OutputPeripherals::number);