TipoPuntatore è una classe astratta da cui derivo una famiglia di classi (Tipo1,Tipo2,Tipo3, ecc i cui dati membro sono solo alcuni double, per cui potrebbe andare bene quello che fa il compilatore per la copia).
quindi in realtà dovrei correggere quanto ho scritto circa l'implementazione del costruttore di copia
codice:
Prova::Prova(const Prova& da_copiare)
{
//1) copio in un puntatore temporaneo il puntatore dell'oggetto da_copiare
TipoPuntatore* puntatore_temporaneo=da_copiare.mPuntatore;
//2) ricavo i dati puntati dal puntatore dato membro dell'oggetto che deve essere copiato
TipoDatiDaCopiare dati_temporanei=puntatore_temporaneo->getDati();
//3) ricavo il tipo di classe istanziata in Prova
TipoPuntatore::Type temp_type=puntatore_temporaneo->getType();
//4) creo l'istanza del dato membro puntatore del nuovo oggetto partendo dai dati ricavati mediante il puntatore temporaneo
mPuntatore=Factory::makeTipoPuntatore(TipoDatiDaCopiare dati_temporanei, TipoPuntatore::Type temp_type);
}
Spero di essermi spiegato...