Io non voglio sono la classe dell'oggetto... voglio creare un new oggetto della stessa classe!
Da B (supponiamo astratta) derivano D1,D2 e D3.
Io ho un puntatore *B che si chiama P, e quindi può puntare anche ad un oggetto D..
B *funzione(B* P);
Se P punta ad un oggetto di tipo D1, allora la funzione mi restituirà un "new D1". Se P punta a un D2, voglio che restituisca un "new D2" and so on.