PDA

View Full Version : [C++] Creare oggetti


carosene
13-09-2010, 22:09
Ho visto che in C++ è possibile creare un oggetto con diversi costrutti:

1 - employee xxx;
2 - employee *p; p = new employee;

Facendo delle ricerche ho capito che il secondo metodo usa l'allocazione dinamica della memoria mentre il primo no. Ora il mio dubbio è questo:
Quando scegliere il primo approccio e quando il secondo?

Grazie in anticipo.

DanieleC88
14-09-2010, 14:53
Usa il secondo solo se non hai modo di utilizzare il primo. L'allocazione dinamica sull'heap ti costringe ad assicurarti che venga chiamata una delete in corrispondenza di ogni new, e se il flusso di esecuzione diventa intricato la cosa si fa difficile. Quando invece usi una variabile automatica, all'uscita della funzione (per qualsiasi motivo) viene invocato il distruttore dell'oggetto e liberata la memoria che utilizzava. In questo modo riduci quasi a zero il rischio di memory leak. :)

Magari dai uno sguardo qui (http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization).
ciao ;)