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.)