Um ponteiro de função é, em essência , apenas um ponteiro para uma função. Em linguagens como C + +, cada função e variável em um programa de computador existe como um endereço de memória , e uma variável pode conter o valor desse endereço. Essa variável pode ser passada para uma chamada de retorno , que pode, então, chamar a função que os pontos variáveis para . Ele também pode ser usado em um gerente do evento , ou para ligação tardia de uma função membro . Devido à sua sintaxe complicada , os ponteiros de função são frequentemente evitados por programadores , mas pode ser utilizado para realizar facilmente muitas tarefas poderosos . Coisas que você precisa 
 compilador C + + 
 Show Mais instruções 
 1 
 Escreva um programa em C + +. Este é o programa em que você vai usar um ponteiro de função . 
 2 
 Definir um ponteiro de função . Você pode fazer isso de várias maneiras . Declare uma função, como : 
 
 doSomething void ( dados int); 
 
 e depois declarar um ponteiro para ele . Ou, você pode declarar uma função como um ponteiro : 
 
 void ( * doSomething ) ( int); 
 
 Por último, você pode declarar um typedef , em seguida, criar uma variável desse tipo < br. > 
 typedef void ( * voidTakingInt ) ( int); 
 
 agora você pode usar " voidTakingInt " como um tipo : 
 
 doSomething void ( dados int); voidTakingInt fun_ptr = & doSomething ; 
 
 3 
 Declare algo que usa o ponteiro de função . Isso , muitas vezes, ser algo que usa o ponteiro de função como uma função de retorno de chamada , de modo que quando ocorre um evento específico , a função executa a sua função . Um exemplo é uma função de arquivo de carregamento que usa uma função de chamada de retorno para indicar o progresso . 
 4 
 Chame a função do ponteiro para ele . Isso seria feito a partir de dentro da função que você escreveu que aceita um ponteiro de função como um parâmetro: 
 
 doSomething void ( dados int) {} 
 
 callAnotherFunction (void (* otherFunction ) (int) ) { 
 
 (* otherFunction ) (3) ; 
 
 } 
 
 int main (int argc , char * argv [ ] ) { 
 
 callAnotherFunction ( & doSomething ); return 0; }