CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

C/C++ - Funções

Por Benedito Silva Júnior - publicado em 20/06/2016


Funções são usadas para criar pequenos pedaços de códigos separados do programa principal. Em C/C++, tudo, na verdade, é uma função. INT MAIN (VOID) é uma função, por exemplo. Exceto a função MAIN, todas as outras funções são secundárias, o que significa que elas podem existir ou não.

Então, qual a vantagem de fazermos uma função?

Funções são importantes porque elas retornam valores, ajudam a fragmentar o código em partes menores - mais fáceis de lidar - e ainda por cima podem ser utilizadas mais de uma vez no mesmo programa, poupando preciosos minutos de programação e inúmeras linhas de código.

Em C/C++ as funções podem ter ou não argumentos. Primeiramente, veremos as funções sem argumentos. Funções são como variáveis que guardam inúmeras linhas de código. Se não prototipadas, elas devem ser escritas antes da função MAIN, afim de serem compiladas primeiro para poderem ser utilizadas pela função main.

É quase o mesmo que querer comer uma maçã do pomar e quando chegar lá não tem nenhuma, você continuará com fome. Porque não tem maçãs produzidas no pomar. Seria o mesmo que querer utilizar uma função no MAIN e não tem nenhuma função produzida anteriormente.

Como haviamos dito, funções são como variáveis. Então, criamos uma função indicando o tipo de retorno (saída) que será int, float, etc...Nomeamos a função (valem as mesma regras das variáveis, ex.: Não começa nomes de funções com número) e terminamos colocando entre parênteses os argumentos.

Como nossas primeiras funções não terão argumentos entre parênteses usaremos VOID (do inglês VAZIO). Todo o código da função deve estar dentro de um bloco de instrução ( { } ), mesmo que haja apenas uma linha.

Veja:

#include <iostream> #include <cstdlib> using namespace std; void somar (void) { int a, b, resultado; cout << "Digite um numero:\n"; cin >> a; cin.ignore (); cout << "Digite mais um numero:\n"; cin >> b; cin.ignore (); resultado = a+b; return resultado; //valor que será retornado } int main (void){ int resultadoDaFuncao; resultadoDaFuncao= somar(); //gravando o resultado da função em uma variável cout <<"\nO resultado da funcao e "<<resultadoDaFuncao<<"\n"; system ("pause"); return EXIT_SUCCESS; }

A definição de uma função consiste de um cabeçalho e de um corpo. O cabeçalho contém o tipo retornado, o nome da função e os parâmetros que ela recebe. Os parâmetros de uma função permitem que passemos valores para a função. Assim, se uma função deve somar dois números, esses números seriam os parâmetros da função.
Um exemplo de cabeçalho de função:

int Soma(int i, int j)

Um parâmetro é uma declaração de qual o tipo de valor que será passado para a função. O valor passado de fato é chamado de argumento.

O corpo da função consiste de uma chave de abertura "{", seguida pelos comandos que executam a tarefa da função, e finalmente, pelo chave de fechamento "}".

Exemplo:

// FunSimp.cpp ilustra o uso de uma função simples #include <iostream.h> int Soma(int i, int j) { cout << "Estamos na funcao Soma().\n"; cout << "Valores recebidos: \n"; cout << "i = " << i << ", j = " << j << "\n"; return (i + j); } // Fim de Soma(int, int) int main() { cout << "Estamos em main()\n"; int x, y, z; cout << "\nDigite o primeiro num. + <Enter>"; cin > x; cout < "\nDigite o segundo num. + <Enter>"; cin >; y; cout < "Chamando funcao Soma()...\n"; z = Soma(x, y); cout < "Voltamos a main()\n"; cout < "Novo valor de z = " < z < "\n"; return 0; } // Fim de main()

Sobrecarga de funções

Em C++, podemos ter mais de uma função com o mesmo nome. Esse processo chama-se sobrecarga de funções. As funções de mesmo nome devem diferir na lista de parâmetros, seja por diferenças nos tipos ou no número de parâmetros, ou em ambos.

Exemplo:

int funcaoX(int, int); int funcaoX(long, long); int funcaoX(long);

Observe que a lista de parâmetros das três versões de funcaoX() são diferentes. A primeira e a segunda versões diferem nos tipos dos parâmetros. A terceira versão difere no número de parâmetros.

O tipo retornado pode ou não ser o mesmo nas várias versões sobrecarregadas. Importante: se tentarmos sobrecarregar uma função modificando somente o tipo retornado, isso gerará um erro de compilação.

A versão correta da função será chamada pelo compilador, com base nos argumentos recebidos. Por exemplo, podemos criar uma função chamada media(), que calcula a média entre dois números int, long, float ou double. A versão correta será chamada, conforme os argumentos recebidos sejam do tipo int, long, float ou double.


 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo