Cómo implementar una llamada por referencia en C ++



Este artículo le proporcionará un conocimiento detallado de Call by Reference en C ++ con implementaciones y en qué se diferencia de Call by Value.

Trabajar con C ++ no es una tarea difícil si ya tiene experiencia en C, ya que ambos comparten toneladas de conceptos entre sí. Pero, C ++ tiene algunos conceptos que no forman parte del paradigma C. En este artículo de Llamada por referencia en C ++, hablaremos sobre uno de esos conceptos que son las variables de referencia y sus aplicaciones en el siguiente orden:

Variables de referencia

C ++ nos da un nuevo tipo de variable, es decir, una variable de referencia. Podemos pensar en una variable de referencia como un apodo para nuestra variable original. Esa es la funcionalidad exacta de una variable de referencia en una línea.





Por ejemplo, si su nombre es Harrison pero está en casa, los miembros de su familia lo llamarán Harry. Ahora veamos algunos detalles de las variables de referencia. La declaración y el uso de este tipo de variable son diferentes de las variables habituales que usamos pero muy similares a las variables de puntero.

Sintaxis:



int Hola = 1 int * ptr int & World = Hola

Cuando creamos una variable 'Hola' que contiene el valor '1', un segmento de memoria se utiliza para eliminar el valor '1', el nombre de este segmento será 'Hola' y la dirección de este segmento será un valor hexadecimal, por ejemplo0x64. cuando escribimosEn t& World = HolaSe crea la variable 'Mundo' que apunta hacia la misma ubicación de memoria.

Incluir la línea World ++ hará cambios en la dirección 0x64, esto significa que el valor de la variable 'Hola' también cambiará. Algunos podrían señalar que ¿cómo están variables de referencia diferentes de las variables de puntero que discutiremos en la última parte de este artículo.

Llamada por valor y llamada por referencia en C ++

Llamar por valor: La llamada por valor es un método ampliamente utilizado. La mayoría de las veces utilizará el enfoque de llamada por valor, ya que no desea que se modifiquen los valores originales de las variables. Por lo tanto, usamos el método de llamada por valor para llamar a una función, solo se pasan los valores de las variables. Esto se logra creando variables ficticias en la memoria.



#incluir usando el espacio de nombres std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Llamar por valor en C ++

En la imagen de arriba, podemos ver que tan pronto como llamamos a la función add (), los valores de las variables xey se copian en las variables ay b. A y b son variables ficticias.

Llamar por referencia: Ahora, hablemos del método de llamada por referencia. En este método no se crean variables ficticias independientes, se pasa al método una referencia de una variable ya existente. Esta referencia apunta a la misma ubicación de memoria, por lo que no se realizan copias separadas en la memoria. El punto importante a tener en cuenta aquí es que los cambios realizados en las variables de referencia se reflejan en la variable ficticia.

#incluir usando el espacio de nombres std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (a 

Como podemos ver, la función anterior se ve diferente en comparación con las funciones normales, ya que el tipo de retorno es 'int &'. Esta función devuelve una referencia a a o b según la condición. El punto importante a tener en cuenta aquí es que los valoresno se devuelven.

Si llamamos a la función min (x, y) = 10. Se asignará 10 a x si es mínimo oa y si y es mínimo.

Llamar por referencia frente a puntero

En todos nuestros ejemplos que vimos, siempre asignamos un valor a la variable de referencia que creamos, ya que las variables de referencia no pueden ser NULL, mientras que las variables de puntero pueden ser NULL y pueden causar errores inesperados.

Las variables de referencia no se pueden reasignar, mientras que las variables de puntero pueden apuntar a alguna otra variable más adelante en el programa.

Una variable de puntero contiene el valor de dirección de una variable en particular, mientras que la dirección de la variable de referencia es la misma que la de la variable a la que se refiere.

Con esto, llegamos al final de este artículo de Call By Reference en C ++. Espero que comprenda las diversas implementaciones de la llamada por valor y referencia y en qué se diferencian ambas.

Si desea obtener más información, consulte el por Edureka, una empresa de aprendizaje en línea de confianza. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.