utilisation des références
Bonjour,
J'ai une petite question sur les références.
Prenons un objet A, et sa méthode toString() qui va créer une string représentant A. Je pars du principe que la représentation stringuesque de A n'est pas sauvegardée dans la classe, donc calculée à chaque fois.
Question performance (bon ok pour une string ça joue pas énormément, mais c'est pour le principe) le mieux c'est de faire :
Code:
1 2 3 4 5 6 7 8 9
|
void toString(string& myString)
{
// traitement sur myString blabla
}
//dans l'appelant
string s;
A.toString(s) ; |
?
Car si j'ai bien compris (arf) si je fais
Code:
1 2 3 4 5 6 7 8 9 10
|
string toString()
{
string s ;
// traitement sur myString blabla
return s ;
}
//dans l'appelant
string s = A.toString(s) ; |
dans ce cas là j'ai une copie lors de l'affecation non ?
Et si je fais
Code:
1 2 3 4 5 6 7 8 9 10
|
const string& toString()
{
string s ;
// traitement sur myString blabla
return s ;
}
//dans l'appelant
string s = A.toString(s) ; |
dans ce cas je retourne une référence vers un object qui n'existe plus non ?
Et si je fais
Code:
1 2 3 4 5 6 7 8 9 10
|
string toString()
{
string s ;
// traitement sur myString blabla
return s ;
}
//dans l'appelant
const string& s = A.toString(s) ; |
Pareil que précédemment, j'ai une référence vers un object qui n'existe pas non ?