Como usar as referências de função em C ++

Como usar as referências de função em C ++
C ++ fornece vários métodos para transmitir argumentos para as funções, inclusive por valor, por ponteiro e por referência. A aprovação de argumentos por referência permite que funções modifiquem os valores das variáveis ​​originais, em vez de apenas trabalhar com cópias. As referências de função fornecem uma maneira alternativa de passar argumentos por referência e podem simplificar o código, eliminando a necessidade de sintaxe do ponteiro.

Este artigo explorará como usar Referências de função em C++, incluindo sintaxe, um exemplo e vantagens em c++.

O que são referências de função em c++

Os desenvolvedores podem usar Referências de função em C ++ para escrever código mais eficaz e expressivo. Referências de função, Em comparação com as chamadas de função convencionais, permitam que os programadores enviem funções inteiras como parâmetros para outras funções. Isso tem uma variedade de vantagens, incluindo a legibilidade aprimorada do código, a liberdade de design de funções expandidas e ganhos significativos de desempenho.

Uma característica fundamental do C ++ é a capacidade de enviar funções como parâmetros para outras funções usando Referências de função. Ao trabalhar com aplicações grandes e complexas, isso pode ser imensamente útil, pois promove maior flexibilidade e abstração.

Como usar as referências de função em c++

A sintaxe básica para declarar um Referência da função é o seguinte:

Tipo de retorno e função-ref-name (parâmetros)

Nesse caso, “Tipo de função” refere -se ao tipo de função que desejamos enviar como argumento, “Tipo de retorno” refere -se ao tipo de valor o Referência da função retorna e “Parâmetros” refere -se aos argumentos aprovados.

Existem certas etapas fundamentais para usar Referências de função em c++. Crie uma função que aceite uma referência de função como um argumento primeiro. Qualquer função que corresponda ao tipo de referência deve ser capaz de lidar com esta função. Sua função deve ser capaz de lidar com qualquer função desse tipo.

#incluir
int add (int a, int b)
retornar a + b;

int subtract (int a, int b)
retornar a - b;

int main ()
int (*padd) (int, int) = add;
int (*psubtract) (int, int) = subtração;
std :: cout << "6 + 4 = " << pAdd(6, 4) << std::endl;
std :: cout << "8 - 2 = " << pSubtract(8, 2) << std::endl;
retornar 0;

No código acima, as duas funções adicionam e subtraem ambas aceitam dois parâmetros inteiros e retornam um valor inteiro. Em seguida, definimos duas variáveis ​​de referência de função chamadas Padd e psubtract, que são ponteiros para funções que aceitam dois argumentos inteiros e produzem um valor inteiro. Com os endereços das funções ADD e Subtrair, respectivamente, inicializamos essas variáveis. Em seguida, podemos usar as variáveis ​​de referência da função PADD e PSUBTRATTRIP para invocar indiretamente essas funções.

Saída

Ao usar Referências de função em C++, você deve aderir a certas práticas recomendadas. Antes de qualquer outra coisa, é fundamental confirmar que quaisquer funções às quais você fornece referências são sem estado. Isso indica que eles simplesmente usam os parâmetros de entrada que foram fornecidos a eles e não alteram nenhum estado externo. Isso é porque usando Referências de função Gerenciar mudanças no estado externo pode ter resultados inesperados, pois não pretendiam fazer isso.

Ao passar uma função como um argumento para outra função, como ao usar um algoritmo de classificação que aceita uma função de comparação como um argumento, Referências de função pode ser útil. Além disso, eles podem ser usados ​​para implementar funções de retorno de chamada, nas quais uma função é chamada quando um evento específico ocorre.

Vantagens do uso de referências de função

1: código eficiente

Quando você usa Referências de função, Você também pode se beneficiar de uma variedade de recursos C ++ que ajudam a criar código mais limpo e mais eficaz. Por exemplo, você pode escrever um código incrivelmente poderoso e versátil combinando Referências de função com outros recursos de C ++, como iteradores, sobrecarga do operador e modelos.

2: melhorias de desempenho

A capacidade de aumentar bastante o desempenho é talvez o maior benefício de Referências de função. A Referência da função é um ponteiro para a função quando é passado. Ao fazer isso, você pode economizar espaço, não criando uma cópia da função cada vez que é invocada. Isso pode ser extremamente importante ao lidar com funções demoradas, complicadas ou em larga escala.

3: Passe as funções como argumentos

A capacidade de fornecer funções como parâmetros para outras funções é um dos principais benefícios do uso Referências de função. Você pode começar a fornecer Referências de função Como os argumentos após a sua função são configurados. Basta passar a referência à função apropriada ao chamar a função. Isso pode ser feito nomeando explicitamente a função ou usando uma função lambda. O último é particularmente útil quando você precisa passar por uma função sem nome ou em linha declarada.

Conclusão

Para programadores que tentam construir um código mais eficaz e expressivo, Referências de função em C ++ são vitais. Você pode aumentar a flexibilidade no design da função, aumentar a legibilidade do código e alcançar vantagens significativas de desempenho, passando Referências de função como parâmetros. Você pode começar a usar Referências de função Em seu código C ++ e lucro com todas as suas vantagens com um pouco de prática.