En r�gle g�n�rale, je suppose qu'il vaut mieux passer des objets "lourds" en param�tre de fonction par r�f�rence. Mais n'y-a-t-il pas des cas o� c'est mieux de les passer par valeur ? (dans les deux cas je pense � un usage read only)
Par exemple, il me semble inutile de passer un int par r�f�rence (ou tout type de base). Mais quid pour des objets l�gers comme un smart pointer ou l'habituel std::string ?
Dans le cas du smart pointer par exemple, le passage par valeur va induire une copie (avec incr�mentation dans le cas d'un shared_ptr par exemple) bien souvent inutile. Le passage par r�f�rence, lui, va provoquer une indirection suppl�mentaire � chaque acc�s � un des membres de l'objet point�.
En g�n�ral je passe les param�tres par const r�f�rence la plupart du temps, mais je doute que se soit toujours le plus efficace.
Merci.
Partager