Cref C ++

Cref C ++

C ++ é uma alta linguagem de programação que é mais comumente usada para desenvolvimento de jogos e desenvolvimento de sistemas operacionais. Ele fornece algumas funções internas úteis que tornam a programação em C ++ muito mais fácil. Essas funções internas permitem que você construa qualquer tipo de aplicação simples ou complexa com facilidade. O usuário pode executar grandes funções apenas incluindo a função interna no programa. Este artigo ajudará você a aprender o funcionamento da função interna de Cref () de C++. Aqui, definiremos a função do Cref () e ajudá -lo a entender que está funcionando demonstrando alguns exemplos úteis.

O que é a função Cref () C ++?

O cref () é uma função interna da linguagem de programação C ++ fornecida na biblioteca padrão de referência_wrapper. É uma função auxiliar que usa a dedução do argumento do modelo para gerar um objeto do tipo Reference_wrapper enquanto determina o argumento do modelo do resultado.

Em palavras simples, a função Cref () é usada para criar um invólucro de referência. O invólucro de referência é um método de transmitir a referência de um argumento a uma função em vez do valor real. Quando o controle está dentro da função, a referência do parâmetro é usada para acessar o valor real, sem alterações no valor original, mas ao valor de referência. Isso é útil quando o usuário não deseja modificar o valor original, mas precisa usá -los para mais cálculos.

Sintaxe da função Cref () C ++:

A sintaxe adequada da função cref () é a seguinte:

A função Cref () toma um argumento como entrada que precisa ser embrulhada e retorna o objeto Wrapper de referência para segurar o elemento "Const Parameter". Agora, vamos explorar alguns exemplos para entender melhor o funcionamento da função CREF (). Seguindo os exemplos úteis dados, você pode aprender a implementar a função CREF () em seus programas e desenvolver bons aplicativos.

Exemplo 1:

Este primeiro exemplo do artigo Cref () define o uso básico da função CREF () na linguagem de programação C ++. Veja o código a seguir e entenda o funcionamento de cada linha passo a passo.

A primeira linha inclui a biblioteca "iostream" no programa para que o programa possa usar a funcionalidade de saída de entrada padrão da linguagem de programação C ++. A biblioteca padrão "iostream" permite que você use o CIN, o Cout e outras funções para tornar seu programa utilizável. O arquivo de cabeçalho "funcional" faz parte da biblioteca padrão fornecida pela linguagem de programação C ++. Oferece um conjunto predefinido de modelos de classe para executar várias funções. Inclui criar a lógica, executar comparações, diferentes operações aritméticas, etc. O programa começa com a função principal (). O código completo está escrito na função principal ().

A primeira linha de código na função Main () é "Int Ref (9)". Ele chama a função "Ref" e passa "9" como um parâmetro para a função "Ref". Depois disso, o “Auto Ren = Std :: Cref (Ref);” é definido. Esta linha cria um invólucro de referência do "Ref". O "ref ++" adiciona 1 no parâmetro dado que é 9. Então, o "ref ++" se torna 10. O valor calculado é passado para a declaração cout para que possa ser impressa. A declaração de retorno 0 garante que a saída seja retornada com sucesso. Se houver algum erro, o retorno 0 levanta a exceção.

Para compilar e executar o programa, você precisa pressionar o "Compile & Run" na barra de tarefas. Ou você pode simplesmente pressionar a tecla de função "F11" no teclado. Confira a saída fornecida no seguinte:

Como você pode ver, a saída é 10, que é exatamente o que calculamos manualmente.

Exemplo 2:

Este exemplo demonstra a exceção levantada pelo compilador quando o usuário deseja fazer alterações diretas no valor de referência original. Você pode encontrar o código para sua compreensão na seguinte ilustração.

A função usa as mesmas bibliotecas usadas no exemplo anterior. A função "void f (const int & n)" é definida no início do programa. Ele pega a entrada da função principal e tenta manipulá -la. A instrução Cout imprime o valor quando o controle está na função.

A declaração "n ++" incrementa n com 1. Na função principal, "n" é inicializado com 1. O “std :: function bound_f = std :: bind (f, std :: cref (n));” A instrução é usada para amarrar a função "f" com o valor do wrapper de referência. As duas declarações cout são usadas para imprimir os valores quando o controle está na função principal. A primeira declaração cout imprime o valor antes de chamar a função filho. A segunda declaração cout imprime o valor depois de chamar a função da criança.

Pressione “F11” nas teclas de função ou no ícone de compilação na barra de tarefas para executar o programa.

Aqui está a saída produzida pelo programa:

Ao executar este código, você receberá um erro "Incremento da referência somente leitura 'n'". Isso acontece porque passamos o invólucro de referência para o "const int & n" na função criança. O "const" não permite que você faça alterações no parâmetro Wrapper. Portanto, levanta um erro.

Exemplo 3:

O próximo exemplo é uma versão um pouco mais complexa do primeiro exemplo. Aqui, definimos as três variáveis ​​e as passamos para a criança funcionando cada uma, de maneira diferente. O primeiro argumento é passado simplesmente sem criar um invólucro de referência. No entanto, os outros dois números de entrada são fornecidos após a criação do invólucro de referência. Consulte o seguinte código dado:

O restante do programa é o mesmo que foi dado no segundo exemplo. A única diferença é que fornecemos três insumos e não fazemos nenhuma entrada constante. A função de ligação liga a função filho com os parâmetros de entrada. A saída após a execução do programa é a seguinte:

Observe que os valores antes de chamar a função da criança e quando o controle está na função da criança são iguais. No entanto, quando o controle retorna à função principal, todos os valores de entrada são incrementados por 1. Isso acontece porque o incremento de entradas é calculado na função da criança e retorna à função principal.

Conclusão

Neste guia, aprendemos sobre a função CREF () da linguagem de programação C ++. A função Cref () é usada para calcular o invólucro de referência da entrada fornecida. Com a ajuda de exemplos, aprendemos a implementar a função CREF () no programa C ++.