5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
5COP088
Laboratório de Programação
Aula 6
Orientação a Objetos com C++
Prof. Dr. Sylvio Barbon Junior
Sylvio Barbon Jr – [email protected]
1
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sumário
1) Sobrecarga de Operador (Overload operators);
2) Declaração externa de métodos;
3) Apontando para o Objeto (this);
Sylvio Barbon Jr – [email protected]
2
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sobrecarga de operador
A linguagem C++ incorpora a opção de sobrecarga dos operadores
padronizados pela linguagem.
A sobrecarga seria algo como criar uma nova função para o operador, esta
função seria implementada como um método.
Sylvio Barbon Jr – [email protected]
3
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sobrecarga de operador
Exemplo 1 – Classe Animal e Animal2
Sobrecarga de Operador
Sylvio Barbon Jr – [email protected]
4
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sobrecarga de operador
Exemplo 1 – Classe Animal e Animal2
Sylvio Barbon Jr – [email protected]
5
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sobrecarga de operador
Exemplo 1 – Classe Animal e Animal2
Construtor
Método para incrementar a
idade
Sylvio Barbon Jr – [email protected]
6
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Sobrecarga de operador
Exemplo 1 – Classe Animal e Animal2
Construtor
Operador sobrecarregado para
incrementar a idade
Uso da palavra operator junto
da operação que será realizada
Sylvio Barbon Jr – [email protected]
7
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Exercícios
1) Considerando as classes apresentadas, implemente uma solução para que
seja possível sobrecarregar o operador de comparação e realizar uma
comparação entre o Animal e Animal2. Para solucionar tal questão será
necessário uma abordagem com Polimorfismo;
2) Implemente um programa em C++ e desenhe o diagrama UML para a
seguinte situação: Deve-se cadastrar pessoas físicas e jurídicas, no entanto
o tipo de pessoa será requisitada do usuário e o sistema deverá invocar o
método sobrescrito “gravarPessoa” da respectiva subclasse. Assim,
quando o programa principal executar a instrução pessoa.gravarPessoa()
deverá ser criado no disco um arquivo cujo nome será CPF ou CNPJ (de
acordo com a subclasse) seguido pelo número do documento. O conteúdo
será o nome da pessoa cadastrada. Exemplo: CPF35212385996 e o
conteúdo é João da Silva Cabral.
Sylvio Barbon Jr – [email protected]
8
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Declaração externa de métodos
Protótipos
Implementações externas às
classes
Deve-se fazer referência por meio da
sintaxe
retorno CLASSE::Método (Param...)
Sylvio Barbon Jr – [email protected]
9
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Palavra reservada “this”
- Representa um ponteiro para o objeto no qual está função está sendo
executada. Ou seja, para o próprio objeto.
Apontando para o “texto” do
objeto.
Sylvio Barbon Jr – [email protected]
10
5COP088 – Laboratório de Programação
Aula 6 – Linguagem Orientada a Objetos
Referências
Deitel,P.; Deitel, H. C++ Como Programar. 5a edição.
Robert Lafore, Object-Oriented Programming in C++ (4th Edition)
C++Complete Reference (3rd Ed.)
Download

5COP088 Laboratório de Programação