Como atribuir função a uma variável em C/C++

Sim! É isso mesmo, podemos armazenar uma função em uma variável e depois executar a função – como variável – no futuro.

Para realizar isso em C++ você deve utilizar a biblioteca functional da STD.

Para isso você deve assinar a variável com o tipo de função que você vai utilizar conforme o exemplo abaixo:

#include <functional>

/**
* declarando uma variável que recebe uma função
* que recebe como parâmetro double e retorna um inteiro.
**/
std::function< int ( double ) > _func;

int conv( double d ) {
     return (int) d;
}

// atribuindo a função a variável
_func = conv;

 

E caso queira utilizar lambda poderá atribuir o valor dessa forma:

// atribuindo uma função lambda para variável
_func = [](double d){
    return (int) d;
}

 

Como Executar?

Para executar basta usar a própria variável, usando ela como chamada de função!

// chamada da função usando a variável
int value = _func(10.20);

 

Tem alguma dúvida ou sugestão? Deixe seu comentário abaixo!

Deixe um comentário