con ifdef o (meglio imho, vistoche non ci sono richieste di "velocità") con classi e sottoclassi verrebbe molto bene.