quarta-feira, 27 de novembro de 2019

C++ - Funções (Parte 1)



As funções são uma grande parte do C++.
Podemos escrever um código uma só vez dentro dela, e depois chamá-la, executando o código, como se o tivessemos copiado e colado.
Mais ou menos da mesma forma que as funções da matemática, podem receber argumentos, como um número, e fazer alguma coisa com ele, além de retornar um valor.

Escrevendo:
int function(){
    //código
}

Chamando a função
Para chamar a função, escrevemos o identifier (nome) dela, seguido dos argumentos necessários dentro de ( ).

function();

Isto essencialmente copia e cola o código dentro da função no local onde foi chamada.

Return
Como vêm, a função, assim como uma variável, tem um tipo de dado, neste caso int. Este tipo de dado diz-nos o que é que a função vai retornar. Sim, também pode retornar um valor. Depois de executar o código, pode retornar um valor, como se fosse uma variável temporária.

Pode também ter o tipo de dado void, este diz-nos que a função não vai retornar nenhum valor. Se a função tiver outro tipo de dado que não o void, é obrigatório que retorne um valor.
void function(){
    //código
}

Para retornar um valor, temos que escrever "return" seguido do valor a retornar.
Por isso se a função for do tipo int, pode ser:
int function(){
    return 6;
}

Ou seja, a própria função quando chamada, vai ter um valor, como uma variável:

cout << function() << endl;
O output será 6.


Argumento
A função, dentro daqueles seus parêntesis, pode ter o que chamamos de argumentos. Estes são dados extra que damos para a função trabalhar.
Por exemplo, um argumento pode ser o nome de uma pessoa (uma string) e a função faz print de uma mensagem de boas-vindas para esse nome.

void welcome(string nome){
    cout << "Bem-vindo, " << nome << endl;
}

Se eu chamar a função com o nome "Nyck":
welcome("Nyck");

O output será:
Bem-vindo, Nyck


Programa exemplo
#include <iostream>
using namespace std;

int plus5(int num){
    return num + 5;
}

int main()
{
    int number;
    cin >> number;
    
    cout << plus5(number) << endl;
}

Esta tem como objetivo receber um número inteiro como argumento e retornar esse número mais 5.
O programa pede o input do número e faz o output do valor que a função retorna (o número é o argumento).

Se o número que escrevermos for 415, na consola estará:
415
420

Mas atenção: o fato de o valor que a função retorna ser a variável number + 5, não significa que eu adicionei 5 à variável number. Também é possível fazer isso através da função através dos pointers, que falarei só mais à frente. E na parte 2 vou falar de algo que parece que irá fazer isto, mas afinal faz outra coisa.

Referências

Sem comentários:

Enviar um comentário

Comente de uma forma construtiva...

Mensagem em destaque

IoT está a transformar o mundo dos videojogos

Os videojogos ou games evoluíram muito desde o "pong", tornando-se uma das formas mais populares de entretenimento, gerando recei...