cross, vous avez tous répondu

Sasume (./319) :
Folco (./317) :
Si on a une classe MaClasse et une instance MonObjet de cette classe, alors :
MaClasse MonObjet_2 = Mon_Objet;appellera le constructeur de copie si celui-ci est défini ?
Oui.
Et s'il n'est pas défini, c'est le constructeur de copie par défaut qui sera appelé, qui appelle lui-même le constructeur de copie de chacun des membres de ta classe. En gros c'est une copie bit à bit sauf si tu définis ton propre constructeur de copie.
Je ne sais pas trop s'il y a un cas où le compilateur peut appeler le constructeur sans paramètres puis l'opérateur =, mais je pense pas
GoldenCrystal (./321) :
C'est sur pour le cas des valeur de retour ? Normalement ça doit pas *systématiquement* provoquer de recopie non ? 
non, c'est pas systématique, le compilateur peut optimiser en filant à la fonction qui renvoit par valeur l'adresse mémoire où la fonction devra créer son objet. cette adresse pointera dans la pile de la fonction appelante par exemple
plus de détails :
http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.9