c++ - retornar - Regresando vs. usando un parámetro de referencia
punteros c++ (1)
Hay dos razones comunes para estos parámetros de referencia no constantes:
Es posible que necesite varios parámetros de "salida" en una función, y el uso de parámetros de referencia lo permite.
Su objeto puede ser costoso de copiar, por lo que pasa una referencia que se modificará en lugar de devolver un objeto que puede copiarse como parte del proceso de devolución. Los objetos costosos para copiar pueden incluir contenedores estándar (como el
vector
) y objetos que administran la memoria de almacenamiento dinámico donde se produce una secuencia de asignación-copia-desasignación. Tenga en cuenta que los compiladores se están volviendo realmente buenos en la optimización de estas copias cuando es posible, por lo que esta razón tiene menos importancia de la que solía tener.
EDITAR: Debería aclarar que incluso en C ++, el ejemplo específico que ha proporcionado con un único parámetro de referencia de tipo incorporado es bastante atípico. En tales casos, casi siempre se prefiere un valor de retorno.
Esto realmente me está molestando, viniendo de un fondo de C #.
A veces, veo funciones escritas así:
int computeResult();
Esto es a lo que estoy acostumbrado. Pero luego los veo escritos así:
void computeResult(int &result);
Me parece extraño. ¿Qué beneficios tiene el segundo método sobre el primero, si los hay? Debe haber algo, ya que lo veo todo el tiempo.