Pasando referencia a una función El parámetro de una función puede ser la dirección (de referencia) de un objeto. El siguiente código ilustra esto: #include using namespace std; int AFN (int & no) {cout no = 77; } Int main () {int Theint = 88; AFN (Theint); cout return 0; } Como se inicia el programa, 88 se asigna al objeto cuyo identificador es Theint. La siguiente declaración en la función principal llama a la función, AFN, pasando el identificador del objeto cuyo valor es 88 como argumento. El parámetro de la función llamada es "int & no".
Inmediatamente la función llamada comienza a ejecutar, la dirección de parámetro se convierte en el equivalente a & Theint, que es la dirección del objeto declarado en la primera declaración en la función principal. Así que de inmediato la ejecución de la función llamada se inicia, y que no y Theint y son la misma dirección a un objeto; es decir, que no y Theint se identifica el mismo objeto. La primera declaración en la función llamada muestra el valor de nada, que es el mismo que el valor de Theint.
La segunda declaración en la función llamada asigna un nuevo valor a no, asignando automáticamente el nuevo valor a Theint, debido a que ambos identificadores identifican el mismo objeto. La función llamada no tiene una sentencia return, aunque su definición comienza con un tipo de retorno. Eso es aceptable. De vuelta en la función principal: La función de llamada se llama por la segunda declaración en la función principal. La función de llamada se ejecuta antes de que se ejecute la próxima (tercera) Declaración en la función principal.
No nos asignamos ningún valor de retorno de la función llamada a cualquier objeto (identificador) en la función principal. No pudimos hacer esto porque la función llamada no devuelve nada (no tenía ninguna sentencia return). La tercera declaración en la función principal muestra el valor de Theint, que es el mismo valor que para no en la función llamada.