Conteúdo do Curso
Introdução ao C++
Introdução ao C++
O Que São Funções?
Funções são pequenas sub-rotinas que podem ser chamadas quando necessário. Cada função tem um nome pelo qual pode ser chamada.
Nota
O nome
main
já está reservado pela linguagem C++. Portanto, ao declarar uma função com esse nome, o compilador irá gerar um erro.
Para criar uma função, você precisa:
- definir o tipo de dado que ela retornará;
- atribuir um nome a ela;
- fornecer um bloco de instruções (corpo) entre chaves
{...}
para definir sua funcionalidade.
For example, let's create a function that outputs the text "c<>definity"
:
Por exemplo, vamos criar uma função que gere o texto "c<>definity"
:
main
#include <iostream> #include <string> std::string nameOfCourses() // type and name of function { // beginning of a body std::string nameOfCourse = "c<>definity"; return nameOfCourse; } // end of a body int main() { std::cout << "Name of course: " << nameOfCourses() << std::endl; }
Vamos criar uma função que simplifica o processo de conversão de temperaturas de Fahrenheit para Celsius. Esta é uma aplicação prática do dia a dia.
main
#include <iostream> int FahrenheitToCelsius(int degree) { int celsius = (degree - 32) / 1.8; return celsius; } int main() { int fahr = 80; std::cout << fahr << " F" << " = " << FahrenheitToCelsius(fahr) << " C" << std::endl; }
Nota
O argumento da função é representado pela variável
degree
, que contém os dados nos quais a função opera. Neste contexto, refere-se a temperaturas em graus Fahrenheit que precisam ser convertidas para graus Celsius. Vamos nos aprofundar em uma explicação mais detalhada sobre argumentos de função mais adiante.
O compilador processa nosso código do programa sequencialmente, de forma semelhante a como uma pessoa lê um livro, e se encontrar nomes de variáveis ou funções desconhecidos, ele produzirá um erro.
Para ilustrar, vamos tentar invocar uma função antes que ela tenha sido definida.
Este exemplo gera um erro. Isso é feito de propósito.
main
#include <iostream> int main() { int fahr = 80; std::cout << fahr << " F" << " = " << FahrenheitToCelsius(fahr) << " C " << std::endl; } int FahrenheitToCelsius(int degree) //creating function AFTER it calling { int celsius = (degree - 32) / 1.8; return celsius; }
Nestas situações, é essencial empregar protótipos de função.
O propósito do prototipagem é informar o compilador sobre nossa função antecipadamente. Criar um protótipo é semelhante à declaração de uma função padrão, mas com uma diferença sutil:
- especificar o tipo da futura função;
- dar-lhe um nome;
- argumentos (se necessário);
- colocar o caractere do final da expressão
;
.
Vamos adicionar um protótipo de função ao nosso exemplo que estava gerando um erro:
Nota
A prototipagem é útil quando você está trabalhando com muitos recursos. Para evitar "lixo" no arquivo principal, protótipos e definições de funções são movidos para arquivos de terceiros e incluídos no arquivo principal com a diretiva #include
.
main
#include <iostream> int FahrenheitToCelsius(int degree); int main() { int fahr = 80; std::cout << fahr << " F" << " = " << FahrenheitToCelsius(fahr) << " C " << std::endl; } int FahrenheitToCelsius(int degree) { int celsius = (degree - 32) / 1.8; return celsius; }
Nota
A prototipagem é útil quando você está trabalhando com muitos recursos. Para evitar "lixo" no arquivo principal, protótipos e definições de funções são movidos para arquivos terceiros e incluídos no arquivo principal com a diretiva
#include
.
Obrigado pelo seu feedback!