Junior
Comment s'appelle l'alternative pour transmettre des valeurs au lieu de références en C/C++?
sobes.tech IA
Réponse de l'IA
Passage de valeur en utilisant des références à des objets constants.
void process_value(const MyObject& obj) {
// Nous travaillons avec obj comme s'il avait été passé par valeur
// (les modifications sont impossibles grâce à const),
// mais évitons de copier un grand objet.
// Cette fonction NE PEUT PAS modifier l'état de l'objet référencé par obj.
}
// Exemple d'utilisation :
MyObject large_object;
process_value(large_object); // large_object n'est pas copié
Avantages par rapport à la transmission par valeur :
- Évite la copie coûteuse de grands objets, ce qui améliore la performance.
- La sémantique de passage par valeur en termes d'immuabilité à l'intérieur de la fonction est conservée.
Inconvénients par rapport à la transmission par valeur :
- Nécessite une syntaxe spéciale
const &dans la signature de la fonction. - Si l'objet est très petit (par exemple, un type primitif
int), la transmission par valeur peut être plus rapide en raison de coûts potentiels de déférencement de la référence.