Sobes.tech
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.