oregon ha scritto:
Il costruttore di copia viene richiamato quando esegui la
torna
La copia avviene in un [oggetto temporaneo] nello stack (in tutti e due i casi) ma solo nel secondo l'oggetto temporaneo viene copiato nell'oggetto a sinistra dell' =
Grazie mille, mi hai dato la risposta che cercavo! Infatti un altro interrogativo era come fosse possibile fare una cosa del genere:
prova.torna().torna();
Mi chiedevo da quale oggetto fosse chiamata torna() la seconda volta, se il ritorno della prima chiamata a torna() non veniva salvato in nessun oggetto. Quindi, da quello che dici, deduco che la seconda chiamata di torna() venga fatta dall'oggetto temporaneo, il quale viene distrutto dopo la seconda chiamata di torna().
Mi rimane però il dubbio su chi faccia la copia in pr nell'istruzione:
Prova pr = prova.torna();
Non dovrebbe essere il costruttore di copia?