// copie inutile de str void affiche(std::string str) { std::cout << str << std::endl; } // const est ici inutile, puisque str est passé de tout façon par copie. // + copie inutile de str void affiche(const std::string str) { std::cout << str << std::endl; } // Ici, pas de copie. Mais on prend le risque de voir str être modifié. void affiche(std::string& str) { str = "toto"; // str peut être modifié. Or pour une fonction d'affichage, ça devrait être impossible std::cout << str << std::endl; } // Version parfaite :). Pas de copie inutile, pas de risque de modification de str void affiche(const std::string& str) { std::cout << str << std::endl; }
void swap(int a, int b) { int tmp = a; a = b; b = tmp; }
int x = 5; int y = 8; swap(x, y); std::cout << x << " " << y << std::endl;
void swap(int& a, int& b) { int tmp = a; a = b; b = tmp; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question