Trovato!

codice:
#include "funzione.h"

void stampa(base* p_b)
{
	p_b->uno();
	p_b->due();

}
void stampa(derivata1* p_d1)
{
	p_d1->uno();
	p_d1->due();
}
L'errore sta nel fatto che non hanno una dichiarazione uguale.. vedi l'override (e non è l'overloading sia chiaro) vuole che le dichiarazioni siano uguali..

quindi:

codice:
#include "funzione.h"

void stampa(base* p_b)
{
	p_b->uno();
	p_b->due();

}
una sola funzione che chiamerà i metodi virtuali uno() e due () a runtime.. capito?