Non è che sia molto chiaro.

Questa funzione aggiungi_esame dove dovrebbe stare?

Hai scritto
ptr->aggiungi_esame()
però poi il prototipo è nella classe esame come metodo virtuale,

Tu scrivi la funzione come se esistesse (sia la definizione che il corpo)
poi lasci il corpo vuoto e metti i commenti lì, altrimenti imho non si capisce.