Junior
209
¿Cómo se llama la alternativa para pasar valores en lugar de referencias en C/C++?
Respuesta de la IA
sobes.tech AI
Paso de valor usando referencias a objetos constantes.
void process_value(const MyObject& obj) {
// Trabajamos con obj como si se hubiera pasado por valor
// (los cambios son imposibles gracias a const),
// pero evitamos copiar un objeto grande.
// Esta función NO PUEDE cambiar el estado del objeto al que hace referencia obj.
}
// Ejemplo de uso:
MyObject large_object;
process_value(large_object); // large_object no se copia
Ventajas en comparación con pasar por valor:
- No hay costosa copia de objetos grandes, lo que mejora el rendimiento.
- Se mantiene la semántica de paso por valor en términos de inmutabilidad dentro de la función.
Desventajas en comparación con pasar por valor:
- Se requiere una sintaxis especial
const &en la firma de la función. - Si el objeto es muy pequeño (por ejemplo, un tipo primitivo
int), pasar por valor puede ser más rápido debido a posibles costos adicionales de desreferenciación de la referencia.