Originariamente inviato da MItaly
Esattamente.

In genere si fa per evitare di creare copie per niente. Per molti oggetti la creazione di una copia è un'operazione costosa (ad esempio un std::vector con dentro molti elementi), oppure non è nemmeno possibile (vedi ad esempio std::fstream), per cui si passa per reference; il const viene aggiunto come garanzia per il chiamante che la funzione non andrà a modificare l'oggetto in questione.
thx