PDA

View Full Version : [C++] Il modo migliore di passare una stringa


luxorl
13-09-2009, 18:11
Ciao, volevo sapere qual è il modo migliore di passare una stringa ad un metodo che non la modifica.

metodo(const string& s) ??

Se è così, perché?

Se modifico vari metodi a cui prima passavo una stringa in questo modo:

metodo(string s)

con la versione di sopra, mi basta modificare solo le varie signature oppure devo andare a cambiare il codice in cui si invocano questi metodi?

Spiego meglio:

Se ho un metodo fun(string s) e lo trasformo in fun(const string& s) posso lasciare la sua invocazione così:


string x = "test";
fun(x);


?

marco.r
13-09-2009, 18:40
Ciao, volevo sapere qual è il modo migliore di passare una stringa ad un metodo che non la modifica.

metodo(const string& s) ??

Se è così, perché?

Perche' in questo modo non copi tutta la stringa, risparmiando risorse, e inoltre il compilatore ti avvisa se cerchi di modificare la stringa.



Se modifico vari metodi a cui prima passavo una stringa in questo modo:

metodo(string s)

con la versione di sopra, mi basta modificare solo le varie signature oppure devo andare a cambiare il codice in cui si invocano questi metodi?
[quote]
Basta cambiare la signature


[quote]
Se ho un metodo fun(string s) e lo trasformo in fun(const string& s) posso lasciare la sua invocazione così:


string x = "test";
fun(x);


?
si'.

luxorl
13-09-2009, 18:41
Grazie, troppo gentile. :)