Per evitare tutto questo giro di codice è sufficiente implementare il pattern prototype.
In questo modo puoi fare semplicemente:
codice:class TipoPuntatore { public: ... virtual TipoPuntatore* clone()=0; ... }; class Concreta : public TipoPuntatore { double d; public: TipoPuntatore* clone() { Concreta* temp = new Concreta; temp->d = this->d; return temp; } }; ... Prova::Prova(const Prova& da_copiare) { mPuntatore = da_copiare.mPuntatore->clone(); }

Rispondi quotando
