Ah.. Ho dimenticato di dire che nel main sfrutto il polimorfismo e che una soluzione potrebbe essere quella di modificare la classe base semplicemente sostituendo

codice:
virtual void prova(void);
con


codice:
virtual void prova(void) {};
ovvero assegnando un corpo nullo alla funzione nella classe base. Ma così non cambia il concetto? Cioè in questo modo stiamo definendo il metodo e quindi non dichiarandolo! Penso che così si sfrutti solamente la "precedenza"..