Cref c ++

Cref c ++

C ++ es un alto lenguaje de programación que se usa más comúnmente para el desarrollo de juegos y el desarrollo del sistema operativo. Proporciona algunas funciones integradas útiles que facilitan la programación en C ++. Estas funciones incorporadas le permiten construir cualquier tipo de aplicación simple o compleja con facilidad. El usuario puede realizar funciones enormes solo al incluir la función incorporada en el programa. Este artículo lo ayudará a aprender el funcionamiento de la función incorporada de CREF () de C++. Aquí, definiremos la función del cref () y lo ayudaremos a comprender su trabajo demostrando algunos ejemplos útiles.

¿Qué es la función cref () c ++??

El cref () es una función incorporada del lenguaje de programación C ++ proporcionado en la biblioteca estándar reference_wrapper. Es una función de ayuda que utiliza la deducción de argumento de plantilla para generar un objeto de tipo reference_wrapper al determinar el argumento de plantilla del resultado.

En palabras simples, la función cref () se usa para crear un envoltorio de referencia. El envoltorio de referencia es un método para transmitir la referencia de un argumento a una función en lugar del valor real. Cuando el control está dentro de la función, la referencia del parámetro se usa para acceder al valor real, sin hacer cambios en el valor original sino al valor de referencia. Esto es útil cuando el usuario no desea modificar el valor original, pero necesita usarlos para obtener más cálculos.

Sintaxis de la función cref () C ++:

La sintaxis adecuada de la función cref () es la siguiente:

La función cref () toma un argumento como entrada que debe envolverse y devuelve el objeto de envoltura de referencia para contener el elemento "parámetro const". Ahora, exploremos algunos ejemplos para comprender mejor el funcionamiento de la función cref (). Siguiendo los ejemplos útiles dados, puede aprender a implementar la función cref () en sus programas y desarrollar buenas aplicaciones.

Ejemplo 1:

Este primer ejemplo del artículo cref () define el uso básico de la función cref () en el lenguaje de programación C ++. Consulte el siguiente código y comprenda el funcionamiento de cada línea paso a paso.

La primera línea incluye la biblioteca "iOStream" en el programa para que el programa pueda usar la funcionalidad de salida de entrada estándar del lenguaje de programación C ++. La biblioteca estándar "IOSTREAM" le permite usar el CIN, la cosecha y otras funciones para que su programa sea utilizable. El archivo de encabezado "funcional" es parte de la biblioteca estándar proporcionada por el lenguaje de programación C ++. Ofrece un conjunto predefinido de plantillas de clase para realizar varias funciones. Incluye crear la lógica, realizar comparaciones, diferentes operaciones aritméticas, etc. El programa comienza con la función Main (). El código completo está escrito en la función Main ().

La primera línea de código en la función main () es "int ref (9)". Se llama a la función "Ref" y pasa "9" como parámetro para la función "Ref". Después de eso, el "Auto ren = std :: cref (ref)"; " se define. Esta línea crea un envoltorio de referencia de la "Ref.". El "Ref ++" agrega 1 en el parámetro dado que es 9. Entonces, el "Ref ++" se convierte en 10. El valor calculado se pasa a la instrucción Cout para que pueda imprimirse. La declaración de retorno 0 se asegura de que la salida se devuelva correctamente. Si hay algún error, el retorno 0 plantea la excepción.

Para compilar y ejecutar el programa, debe presionar el "compilar y ejecutar" en la barra de tareas. O simplemente puede presionar la tecla de función "F11" en el teclado. Consulte la salida dada de la siguiente manera:

Como puede ver, la salida es 10, que es exactamente lo que calculamos manualmente.

Ejemplo 2:

Este ejemplo demuestra la excepción planteada por el compilador cuando el usuario desea realizar cambios directos en el valor de referencia original. Puede encontrar el código para su comprensión en la siguiente ilustración.

La función utiliza las mismas bibliotecas que se usan en el ejemplo anterior. La función "nulo f (const int & n)" se define al comienzo del programa. Toma la entrada de la función principal e intenta manipularla. La instrucción Cout imprime el valor cuando el control está en la función.

La declaración "n ++" incrementa n con 1. En la función principal, "n" se inicializa con 1. El "std :: function bound_f = std :: bind (f, std :: cref (n));" La declaración se usa para vincular la función "F" con el valor de envoltura de referencia. Las dos declaraciones de Cout se utilizan para imprimir los valores cuando el control está en la función principal. La primera declaración de cout imprime el valor antes de llamar a la función infantil. La segunda declaración de cout imprime el valor después de llamar a la función infantil.

Presione "F11" en las teclas de función o el icono de compilación en la barra de tareas para ejecutar el programa.

Aquí está el resultado producido por el programa:

Cuando ejecute este código, obtendrá un error "incremento de la referencia de solo lectura 'n'". Esto sucede porque pasamos el envoltorio de referencia al "const int & n" en la función infantil. El "const" no le permite realizar cambios en el parámetro de envoltura. Por lo tanto, plantea un error.

Ejemplo 3:

El siguiente ejemplo es una versión un poco más compleja del primer ejemplo. Aquí, definimos las tres variables y las pasamos a la función del niño cada una, de manera diferente. El primer argumento se pasa simplemente sin crear un envoltorio de referencia. Sin embargo, los otros dos números de entrada se proporcionan después de crear el envoltorio de referencia. Consulte el siguiente código dado:

El resto del programa es el mismo que se dio en el segundo ejemplo. La única diferencia es que proporcionamos tres entradas y no hacemos constante de entrada. La función de enlace une la función infantil con los parámetros de entrada. La salida después de ejecutar el programa es la siguiente:

Tenga en cuenta que los valores antes de llamar a la función del niño y cuando el control está en la función infantil son los mismos. Sin embargo, cuando el control vuelve a la función principal, todos los valores de entrada se incrementan en 1. Esto sucede porque el incremento de las entradas se calcula en la función infantil y vuelve a la función principal.

Conclusión

En esta guía, aprendemos sobre la función cref () del lenguaje de programación C ++. La función cref () se usa para calcular el envoltorio de referencia de la entrada dada. Con la ayuda de ejemplos, aprendimos cómo implementar la función cref () en el programa C ++.