Ajude nosso projeto a se manter online.

Como criar um projeto com Classes e Objetos em C++: Cabeçalhos e Implementações

 Neste tutorial de nossa apostila de C++, vamos aprender a organizar nossas classes e implementações de funções, criando um projeto bem profissional.


Como criar um projeto em C++

Abra seu Code::Blocks (ou outra IDE que esteja usando).
Clique em File, depois New e escolha Project.

Escolha Console application e marque a opção C++.
Dê um nome para seu projeto, escolha a pasta que quer salvar e clique em Finish,

Vai ficar assim:

Como criar um projeto em C++
Note que já veio o arquivo 'main.cpp', vamos já usar ele.
Agora, clique naqule arquivo branco lá em cima, de 'New file', e clique em Class. Dê o nome 'Calc' para essa classe, pois vamos criar uma calculadora.

Agora veja que legal:

Ele criou dois arquivos: Calc.h e o Calc.cpp

Implementando uma Classe em um Projeto C++: .h

Ok, vamos lá, primeiro vamos trabalhar no arquivo Calc.h, ele é chamado de cabeçalho. 
Vamos ao esboço de nossa classe.

Ela vai ter dois números: num1 e num2, obviamente private.
Vai ter funções de soma (sum), subtração (sub), multiplicação (prod) e divisão (div), todas public e const (elas não vão poder alterar as variáveis).

Somente as funções setNum1 e setNum2 vão poder alterar as variáveis.
E prontinho, nosso cabeçalho da classe Calc.h fica assim:
#ifndef CALC_H
#define CALC_H


class Calc
{
    private:
        double num1, num2;

    public
        double sum() const;
        double sub() const;
        double prod() const;
        double div() const;
        void setNum1(double);
        void setNum2(double);
};

#endif // CALC_H
Veja que tem uns #ifndef, #define, #endif...não mexa neles, são super importantes, deixem eles aí que depois explicamos seus significados.

Implementando Funções de uma Classe de um Projeto: .cpp

É nesse arquivo que vamos implementar as funções de nossa classe Calc.h

Note que bem no começo, tem um "#include Calc.h", assim esse arquivo .cpp fica diretamente relacionado ao arquivo .h , entende a mágica da coisa?

Neste arquivo, vamos implementar todas as funções getters e setters que foram previamente apresentadas no cabeçalho da classe. O arquivo .cpp fica assim:

Note que não tem nenhum 'cout', se tivesse, teríamos que incluir 'include <iostream>:
#include "Calc.h"

double Calc::getSum() const
{
    return num1+num2;
}

double Calc::getSub() const
{
    return num1-num2;
}
double Calc::getProd() const
{
    return num1*num2;
}
double Calc::getDiv() const
{
    return num1/num2;
}
void Calc::setNum1(double n1)
{
    num1=n1;
}
void Calc::setNum2(double n2)
{
    num2=n2;
}

Rodando nosso projeto C++: main.cpp

Agora, na main.cpp, a única coisa que você tem que fazer é dar um #include "Calc.h" lá em cima no arquivo, e prontinho, veja como ficou a main:

#include <iostream>
#include "Calc.h"

using namespace std;

int main()
{
    Calc c;
    double num;

    cout << "Primeiro numero: ";
    cin >> num;
    c.setNum1(num);

    cout << "Segundo numero: ";
    cin >> num;
    c.setNum2(num);

    cout << "\nResultados: "<<endl;
    cout << "Soma: " << c.getSum()<<endl;
    cout << "Subtração: " << c.getSub()<<endl;
    cout << "Multiplicação: " << c.getProd()<<endl;
    cout << "Divisão: " << c.getDiv()<<endl;

}
Agora imagine por um instante se tivéssemos declarado essa classe e as implementações das funções tudo na main.cpp, a bagunça que seria e o código gigantesco.

Dessa maneira que fizemos, separando por cabeçalhos (.h) e implementações de funções (.cpp), ficou tudo mais bonitinho, organizado e profissional, é assim que fazem e usam em softwares profissionais.

Habitue-se  a fazer seus projetos com essa organização, ok?

Nenhum comentário:

Postar um comentário