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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
dans ce cas là j'ai une copie lors de l'affecation non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ;
Et si je fais
dans ce cas je retourne une référence vers un object qui n'existe plus non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ;
Et si je fais
Pareil que précédemment, j'ai une référence vers un object qui n'existe pas non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ;
Partager