Ciao, mi chiedevo quando fosse utile passare a una funzione dei paramatri per reference o per indirizzo invece di passare sempre il tutto per valore?
Ciao, mi chiedevo quando fosse utile passare a una funzione dei paramatri per reference o per indirizzo invece di passare sempre il tutto per valore?
Ad esempio quando la funzione deve modificare il valore puntato dal parametro, quando il parametro è una struttura molto grossa, per cui sarebbe inefficiente passarla sempre per riferimento, quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).
Amaro C++, il gusto pieno dell'undefined behavior.
Correggo:
Ad esempio quando la funzione deve modificare il valore puntato dal parametro, quando il parametro è una struttura molto grossa, per cui sarebbe inefficiente passarla sempre per valore, quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).
Experience is what you get when you don’t get what you want
Grazie, mi era sfuggito.![]()
Amaro C++, il gusto pieno dell'undefined behavior.
Integro:
O quando la classe ha il costruttore di copia privato (che non permette il passaggio per valore) oppure quando la classe stessa è una classe polimorfa. (la classe ostream è un esempio)Originariamente inviato da Xaratroom
...quando il parametro è una classe di cui non si vuole che venga creata una copia (anche se in quest'ultimo caso nella maggior parte dei casi basterebbe scrivere un costruttore di copie per evitare il problema).