- Chamada de Função
- Passando Parâmetros
- Sobrecarga de Função
- Sobrecarga de Operação
- Descrição de Funções Externas
- Exportação de Funções
- Funções de Manipulação de Evento
Funções
Toda tarefa pode ser dividida em sub-tarefas, cada qual podendo ser representada tanto na forma de código, como ser divida em sub-tarefas ainda menores. Este método é chamado de refinamento passo a passo.. Funções são usadas para escrever o código das sub-tarefas a serem resolvidas. O código que descreve o que uma função faz é chamado de definição de função:
function_header
|
Tudo que está antes da primeira chave é o cabeçalho (header) da definição de função, e o que está entre as chaves é o corpo (body) da definição de função. O cabeçalho de função (function header) inclui a descrição do tipo de valor de retorno, o nome (identificador) e os parâmetros formais. O número de parâmetros passados para a função é limitado e não pode exceder 64.
A função pode ser chamada de outras partes do programa quantas vezes forem necessárias. Na verdade, o tipo de retorno, o identificador da função e os tipos de parâmetros constituem o protótipo da função.
Protótipo de função é a declaração da função, mas não a sua definição. Devido a declaração explícita do tipo de retorno e da lista dos tipos de argumentos, a verificação estrita de tipo e a implícita conversão de tipo (typecasting) são possíveis durante as chamadas de função. Muito freqüentemente declarações de funções são usadas em classes para melhorar a legibilidade do código.
As definições de função devem corresponder exatamente à sua declaração. Cada função declarada deve ser definida.
Exemplo:
double // tipo do valor de retorno
|
O operador return pode retornar o valor de uma expressão localizada neste operador. Se necessário, o valor da expressão é convertido para o tipo do resultado da função. Pode ser retornado: tipos simples, estruturas simples, ponteiros de objetos. Com o operador return não se pode retornar arrays, objetos de classe, variáveis de tipo estrutura composta.
Uma função que não retorna nenhum valor deve ser descrita como do tipo void.
Exemplo:
void errmesg(string s)
|
Parâmetros passado para a função podem ter valores default (padrão), que são definidos por constantes daquele tipo.
Exemplo:
int somefunc(double a,
|
Se algum dos parâmetros tem um valor default, todos os parâmetros subseqüentes devem também ter valores default.
Exemplo de declaração incorreta:
int somefunc(double a,
|
Também Veja