Next: Funções
Up: Apontadores
Previous: Alocação Dinâmica
  Sumário
Apontadores para funções funcionam da mesma forma que em
C. Este conceito não é um dos mais utilizados em C, mas
é importante em C ++ para entender mais adiante os conceitos de
ligação dinâmica e polimorfismo. Por este motivo, uma
breve revisão é apresentada aqui na forma do seguinte
exemplo.
indentation
#include
stdio.h
void print_stuff(float data_to_ignore);
void print_message(float list_this_data);
void print_float(float data_to_print);
void (
function_pointer)(float);
main()
{
float pi = 3.14159;
float two_pi = 2.0
pi;
print_stuff(pi);
function_pointer = print_stuff;
function_pointer(pi);
function_pointer = print_message;
function_pointer(two_pi);
function_pointer(13.0);
function_pointer = print_float;
function_pointer(pi);
print_float(pi);
}
void print_stuff(float data_to_ignore)
{
printf("This is the print stuff function.
n");
}
void print_message(float list_this_data)
{
printf("The data to be listed is %f
n", list_this_data);
}
void print_float(float data_to_print)
{
printf("The data to be printed is %f
n", data_to_print);
}
Neste exemplo, function_pointer é um apontador para uma
função que não retorna nada (tipo de retorno
void) e requer um único parâmetro formal, uma
variável do tipo float. As três funções
declaradas neste exemplo se encaixam neste padrão, sendo
portanto ``candidatas'' a serem apontadas por
function_pointer.
É interessante notar neste exemplo que o nome de uma função pode ser
atribuído diretamente a um apontador para uma
função. Isto sugere, de forma correta, que o nome de uma
função é na verdade um apontador para aquela
função -- apenas este apontador é constante, e portanto
não pode ser alterado. Deste modo, após atribuir um valor
para um apontador de função, o nome do apontador também
pode ser usado para chamar a função.
Next: Funções
Up: Apontadores
Previous: Alocação Dinâmica
  Sumário
Ivan Luiz Marques Ricarte
2001-06-01