1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| ...{
T toto;
T titi = toto; // ici
T tata(toto); // ici aussi, autre écriture globalement équivalente
toto = titi; // pas ici, il s'agit d'une affectation qui repose cette fois
// sur l'opérateur d'affectation.
T & ref = toto; // pas ici, c'est une référence
T * ptr = &toto; // pas ici, pointeur, rien à voir avec le smilblick
T *p2 = &tata; // toujours pas
*ptr = *p2; // pas ici, c'est une affectation
ptr = &titi; // rien à voir, ptr pointe maintenant sur titi
T tutu(*ptr); // ici, on construit à partir du T pointé par ptr.
}
...
void f(T t); // ici une copie est réalisé => constructeur de recopie utilisé
void f2(T &t); // pas ici
void f3(T const& t); // ici non plus
T g(); // ici, une copie sera réalisée au moment du return
// sauf optimisations parfois réalisées par certains compilos |
Partager