Uma função é um bloco de código independente, que funciona como uma sub-rotina. As linguagens de programação são basicamente feitas de inúmeras funções criadas pelos fabricantes das mesmas. Algumas funções são guardadas em bibliotecas enquanto outras são escritas no próprio programa que serão usadas.
A possibilidade de um programador poder criar suas próprias funções proporciona um considerável grau de liberdade no processo de programação. Pode-se concentrar em um problema de forma específica e gerar uma função exclusiva para o resolver. Tempos depois (às vezes anos depois!) quando o mesmo problema aparece em um determinado programa usa-se a função criada para esse fim.
Em outras palavras pode-se dizer que: “funções são fragmentos de programa que representam problemas já resolvidos e que podemos reutilizar tantas vezes quantas forem necessártias!”.
Há dois tipos de funções na linguagem C++:
· as ordinárias, que são declaradas e definidas exatamente como qualquer classe;
· membros, que são declaradas e definidas como membros de uma classe.
Certos autores de livros de C++ consideram uma função como um objeto, o que é uma interpretação bastante interessante.
Uma função para ser executada deve ser explicitamente chamada dentro do bloco de código, com os seus parâmetros preenchidos corretamente por variáveis ou dados compatíveis com os declarados no protótipo da função.
O protótipo é o cabeçalho de uma função, e serve para passar ao compilador informações como:
· o nome da função: segue as regras para nomes de variáveis em C/C++;
· lista de argumentos que ela recebe: valores que a função deve receber quando ela for chamada. Pode receber dados de qualquer tipo válido da linguagem C/C++. Se ela não precisar de nenhum argumento os parênteses devem ficar vazios ().
· tipo de valor que ela retorna: pode ser qualquer um dos tipos de dados da linguagem C/C++, tipos de dados criados pelo usuário ou também o tipo void que indica que a função não retorna valor.
O protótipo apresenta o formato de “comunicação” do programa com a função, conforme se segue: