De Objective Caml para C e C++
57 pág.

De Objective Caml para C e C++


DisciplinaEstrutura de Dados I8.836 materiais180.694 seguidores
Pré-visualização14 páginas
também é um objeto da outra).
Um exemplo obvio de Associação Simples são as janelas; o objeto "Janela lateral" é um objeto da classe Janela, e faz
parte da casa. Não existem grandes problemas aqui, então passemos para o próximo tópico.
Herança
Agora, vamos para os cômodos.
Vamos colocar uma casa bem pequena, com uma sala, dois quartos, uma cozinha e um banheiro. Eu poderia criar a
classe sala, a classe quarto e a classe cozinha individualmente, certo? De fato, isso funciona. Não existe nada que me
obrigue a se utilizar de heranças, mas elas são bastante uteis pelo seguinte caso:
Imagine a classe sala. Ela possui um conjunto de luminárias, uma área, um conjunto de objetos, e compartilha a porta
e certas janelas da casa. A classe Quarto tem um conjunto de luminárias, uma área, um conjunto de objetos, a cama,
e compartilha certas janelas da casa. A classe Cozinha tem um conjunto de luminárias, uma área, um conjunto de
objetos, e compartilha certas janelas da casa. A classe Banheiro tem um conjunto de luminárias, uma área, um
Introdução à programação orientada a objetos 51
conjunto de objetos, e compartilha certas janelas da casa.
Essa repetição proposital serve para demonstrar o principal motivo de usar heranças: Evitar repetição. Todos os
cômodos, se fossem criados separadamente, teriam que ter seus próprios métodos para cuidar de suas coisas. ou seja,
você teria que digitar novamente o mesmo código, com pequenas variações as vezes. Criar uma classe Comodo, que
contem as luzes, a área, os objetos e as janelas diminui bastante o trabalho do programador. Pode parecer tentador
usar Ctrl+c e Ctrl+v, mas as vezes copiar tudo faz com que você crie erros indesejáveis. É bom dominar as técnicas
básicas primeiro, para depois se utilizar de facilidades.
Sintaxe
Para se criar uma classe em c++ pode se seguir o seguinte protótipo:
class NOME {
 public :
 PARTE1
 private :
 PARTE2
 }
Onde NOME corresponde ao nome da classe a ser feita e PARTE1 e PARTE2 correspondem a funções e/ou
variáveis. A diferença da PARTE1 para a PARTE2 é essencialmente onde eles estão porque as funções e/ou
variáveis que estiverem no public serão as variáveis e/ou funções que todos terão acesso e no private apenas quem
terá acesso são as funções da própria classe por exemplo:
 class seq {
 public :
 seq ();
 void guardar (int a);
 int retirar ();
 int mostrar ();
 private :
 int i;
 int* v;
 };
Isso é um exemplo do protótipo de uma classe chamada seq que guarda até cinco inteiros e os insere e remove como
uma pilha a seguir um modelo de uma implementação.
 seq :: seq () {
 v = new int v[5];
 i = 0;
 }
 void seq :: guardar (int a) {
 v[i] = a;
 ++i;
 }
 int seq :: retirar () {
 if (i)
 --i;
 return v[i];
Introdução à programação orientada a objetos 52
 }
 int seq :: mostrar () {
 int tmp = i;
 if (i)
 tmp = i-1;
 return v[tmp];
 } 
\u2022\u2022 em construção
Fontes e Editores da Página 53
Fontes e Editores da Página
Introdução  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203861  Contribuidores: David Deharbe, Helder.wiki, Jorge Morais, SallesNeto BR, 8 edições anónimas
Os tipos básicos  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203865  Contribuidores: David Deharbe, SallesNeto BR, 7 edições anónimas
Variáveis e funções  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203866  Contribuidores: David Deharbe, Rodrigo Rodrigues Silva, SallesNeto BR, 2 edições anónimas
Instruções  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203863  Contribuidores: David Deharbe, SallesNeto BR, 1 edições anónimas
Construção de tipos  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203862  Contribuidores: David Deharbe, Rodrigo Rodrigues Silva, SallesNeto BR
Introdução à programação orientada a objetos  Fonte: http://pt.wikibooks.org/w/index.php?oldid=203864  Contribuidores: Helder.wiki, Jefferson Bruno, Rodrigo Rodrigues Silva, SallesNeto
BR, 3 edições anónimas
Fontes, Licenças e Editores da Imagem 54
Fontes, Licenças e Editores da Imagem
Image:Crystal_Clear_action_button_cancel.png  Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Crystal_Clear_action_button_cancel.png  Licença: GNU Free Documentation
License  Contribuidores: Bayo, Butko, Cwbm (commons), CyberSkull, DieBuche, Incnis Mrsi, Rocket000, WikipediaMaster, Ysangkok, Überraschungsbilder
Imagem:2de8.svg  Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:2de8.svg  Licença: Public Domain  Contribuidores: Marcos Antônio Nunes de Moura, Helder
Imagem:3de8.svg  Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:3de8.svg  Licença: Public Domain  Contribuidores: Marcos Antônio Nunes de Moura, Helder
Licença 55
Licença
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/