Quando creo una classe astratta vale sempre la regola di mettere l'interfaccia in un file .h e l'implementazione in un file cpp?
I metodi che sono identici per tutte le classi derivate mi conviene definirli e implementarli direttamente nella classe astratta?
Riguardo i metodi comuni alle classi derivate ma implementati in modo diverso nelle varie classi, cosa mi conviene fare nella classe astratta?