Con i reference la consuetudine č che il chiamante si preoccupi dell'eventuale cancellazione dell'oggetto (il chiamato deve soltanto usare il parametro reference, non lo deve eliminare); con i puntatori invece dipende dal "contratto" specificato nella documentazione. Dato che un puntatore non documentato č un'ambiguitā, in genere č meglio usare i reference se la proprietā dell'oggetto rimane al chiamante o uno smart pointer con trasferimento di ownership (stile auto_ptr) se la proprietā passa al chiamato.Originariamente inviato da giuseppe500
ciao.
mi devo creare un piccolo promemoria su come utilizzare i reference e il const.
1)quando devo invocare una funzione che agisce(cambia o imposta il valore)su di un mio oggetto e le modifiche devono persistere al di fuori della funzione A non devo utilizzare i const in quanto devo cambiare il valore .
posso usare :
1)passare un puntatore e modificarlo
f(oggetto * pobj)
pobj = valore
2)creare nei parametri della funzione un reference del tipo :
f(oggetto& obj)
obj = valore
tra l'altro coi reference penso di aver capito che mi semplifica la vita in quanto non devo distruggere l'oggetto col delete
Sul const, ti consiglio di leggerti queste FAQ, ripassa a chiedere se hai dubbi.se invece devo utilizzare un oggetto senza modificarlo devo utilizzare i const , qui nascono i miei problemi , che tipo di const e da cosa dipende .![]()