Categories
Tutoriais

Uma introdução à Programação Orientada a Objetos em C++ (parte II)

« Leia a parte I

O que você precisa ter e para quem estamos escrevendo

Vai contra os nossos princípios obrigar as pessoas a comprar software ou hardware novo apenas para aprender coisas novas. Por isto, todo o artigo é baseado em softwares livres que podem ser baixados legalmente e gratuitamente da Internet.
Desta forma, todos os exemplos usados aqui podem ser compilados com o GNU C++. Este programa pode ser baixado livremente da Internet. No caso de você estar usando o Linux, como eu, você provavelmente já terá tudo do que precisa instalado na sua máquina.

Galera do Ubuntu

Algumas distros não vêm com o g++ instalado por padrão. Quem usa uma distro baseada no Debian, pode instalar rapidamente com o seguinte comando:

sudo apt-get install g++

😉 (dependendo da sua conexão, não dará tempo nem de ir buscar um cafezinho… )
Um bom editor de textos será muito útil. No Ubuntu, bem como em muitas outras distros Linux, é muito comum já vir instalado o nano, que é modo texto e tem realçe de sintaxe (syntax highlighting). Qualquer outro pode ser usado, contudo.

Tipos de dados

Se você já conhece, de alguma forma, a linguagem C++, já deve ter usado alguns tipos básicos de variáveis: int, float, double, bool etc – são chamados de tipos simples de dados. Vamos usar um exemplo inicial: digamos que desejamos representar uma casa. Vamos começar por examinar os diversos atributos de uma casa: número de quartos, o nome da rua, seu número (endereço), se tem ou não um jardim etc. Em C++, podemos representar a casa assim:

int      numero, quartos;
bool     jardim;

Isto já funciona bem para este exemplo, em particular, mas vamos supor que queremos representar várias casas. Vamos supor, ainda, que precisamos fazer o programa mais complexo do que ele está. E se usássemos nosso próprio tipo de dado para representar a casa em C++? Podemos fazê-lo com o uso de classes:

Classuda!

Até o momento, estamos usando nomes de objetos em português, para facilitar um pouco as coisas – desta forma fica fácil separarmos as palavras-chave da linguagem de programação dos nomes das variáveis. Mas isto irá mudar mais para frente.
Continuando com o nosso exemplo de casa, vejamos como é possível modelar uma casa usando uma classe em C++, tal como você pode ver no código abaixo:

class casa
{
public:
	int num, quartos; 
	bool quintal;
};

main()
{
	casa minha_casa;
	minha_casa.num=40; 
	minha_casa.quartos=8;
	minha_casa.quintal=1;
	return 0;
}

Vamos dar uma olhada no que este código faz.
Primeiro, declaramos uma nova classe e a chamamos “casa”.
Depois abrimos o processo de definição da classe, com as chaves ‘{‘. Em seguida, declaramos que todos os membros – tipos de dados pertencentes à classe, que seguem são públicos (falaremos mais disto depois).
Então, declaramos duas variáveis do tipo básico ‘int’ (inteiro). A próxima instrução declara que o membro “quintal” é do tipo bool (booleano – ou 1 ou 0).
Finalizamos a classe ao fechar as chaves ‘}’ e adicionando um ponto-e-vírgula ‘;’ ao final.
Em resumo, o que fizemos foi declarar um novo tipo de dados ou classe, chamada “casa”, que poderemos usar dentro do nosso programa.
Para fazer uso da classe casa, iniciamos a função main(), que é onde a execução do nosso programa começa e termina.
A primeira coisa feita foi declarar a variável minha_casa como sendo do tipo casa, que é a classe que definimos lá no início do programa. Agora, esta variável ganha novas dimensões.
A variável casa tem mais atributos do que apenas int ou float. De nossa classe de definição, demos à classe casa três variáveis: número, quartos e quintal. A variável recém declarada, minha_casa, tem todos estes atributos.
Na segunda linha da nossa função main(), definimos o número membro do objeto minha_casa para 40.
Da mesma maneira, definimos os valores dos outros três membros de dados de minha_casa, antes de fechar a função com o valor de retorno 0.
Neste ponto, você pode estar se perguntando o que pode haver de tão especial com estas três classes? Não seria mais simples usar o método não-orientado a objetos?
Nesta situação, em particular, o método de programação estruturada seria mais simples – principalmente por que estamos falando de um programa muito pequeno que faz muito pouca coisa. A situação muda de figura, contudo, se estivermos escrevendo um programa bem maior e mais complexo. Neste caso, as classes são mais do que apenas úteis, mas essenciais.

Continuação »

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.