Mandar um cafézinho para o programador:


Me ajude a transformar café em código!

Como criar uma Classe e Objetos em C++

 Agora que já temos uma boa noção sobre o que é o paradigma de programação Orientação a Objetos, bem como os conceitos de Classe e Objeto (de maneira mais abstrata), vamos colocar a mão na massa e fazer código! Criar as tais classes e objetos de verdade.

Como criar uma Classe em C++

Inicialmente, o conceito de codificação de classe lembra muito o de structs. No caso, vamos usar a palavra-chave class para criar uma classe, da seguinte maneira:

#include <iostream>
using namespace std;

class MinhaClasse
{
    //Informações
    //da sua
    //Classe
};

int main()
{
    return 0;
}

Ou seja, escrevemos class, escolhemos um nome pra nossa classe, abrimos chaves e lá dentro colocamos todas as informações sobre ela. Não esqueça de colocar o ponto-e-vírgula ao final do escopo da classe!

Prontinho, a classe MinhaClasse foi criada! Note também que ela não está dentro da função main(), e sim no mesmo nível dela.

Definindo membros de uma Classe: Variáveis e Funções

Vamos criar uma classe de verdade? Vamos criar uma classe que vai criar quadrados. Nossa classe se chama Quadrado.

Qual um dado importante de um quadrado? Ué, seu lado. Logo, ele vai ter uma variável que armazena seu lado.

Qual outra 'coisa' importante de um quadrado? Sua área. Vamos criar uma função que calcula a área desse quadrado. Nossa classe fica assim:

#include <iostream>
using namespace std;

class Quadrado
{
    double lado;
    double area();
};

double Quadrado::area()
{
    return lado*lado;
}

int main()
{
    return 0;
}

Pronto, ali tem a declaração da variável 'lado' bem como o cabeçalho da função area(). E essa função, onde vamos declarar? Ela foi declarada após o escopo da classe.

Até o momento, em nosso curso, se quiséssemos declarar uma função area() em nossos programas, faríamos:

double area()
{
    return lado*lado;
}

E essa função é visível e acessível a todo nosso programa, correto?
E se quisermos criar uma função que é de uma Classe e deve ser visível e acessível somente por aquela classe?

Fazemos:

double Quadrado::area()
{
   return lado*lado;
}

Entendeu? Coloca "NomeDaClasse::" antes do nome da função, isso diz que aquela função é da classe NomeDaClasse, e somente ela tem acesso e pode usar tal função!

Como criar e instanciar Objetos em C++

Ok, nossa classe tá bonitinha e feita! Agora vamos criar objetos a partir dela!

Se quiser criar uma informação do tipo inteira, você faz:
int num;
int idade;
int RG;

Se quiser criar uma informação do tipo string, você faz:
string nome;
string endereco;

E por ai vai. Se quiser criar uma informação do tipo 'MinhaClasse', você faz:
MinhaClasse exemplo;

Por exemplo, para criar um objeto da classe Quadrado, você deve fazer:
Quadrado q1;
Quadrado quadradin;

Vamos chamar de 'q' o nosso objeto, criamos ele assim:

#include <iostream>
using namespace std;

class Quadrado
{
    double lado;
    double area();
};

double Quadrado::area()
{
    return lado*lado;
}

int main()
{
    Quadrado q;

    return 0;
}

Prontinho. Agora existe um quadrado de verdade, de nome 'q' do tipo Quadrado, que tem membros 'lado' e 'area()'. Bacana, né?

Quando criamos um objeto, dizemos que estamos instanciando um objeto q da classe Quadrado. É uma nova 'instância' da classe.

Você pode inclusive criar outro objeto, ou milhões, basta dar nomes diferentes a eles: q1, q2, ..., q2112...cada um terá suas características: seus valores de 'lado' e suas áreas. Embora sejam do mesmo 'tipo' Quadrado (ou seja, todos tem lado e area() em comum), cada um tem seus valores específicos.

É que nem nós, pessoas...todo mundo tem nome, coração, capacidade pulmonar, idade...mas cada um tem seus valores específicos (nome específico, idade específica, condicionamento físico específico). Compreendeu melhor agora, o conceito de Classe e Objeto, em C++ ?

No próximo tutorial vamos aprender como acessar, alterar e usar esses membros da classe Quadrado.

2 comentários:

Ajude o C++ Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo