- No início ASSEMBLY
- Linguagem de alto nível - FORTRAN
- Anos 60 programação estruturada
- Uso de linguagens como C e PASCAL
- Programação orientada a objeto, usa as melhores idéias
da programação estruturada e combinou com novos conceitos.
- Permite que um problema seja decomposto em subgrupos relacionados
- Estes subgrupos podem ser traduzidos em unidades autocontidas chamadas
objetos
- Todas as linguagens orientada a objetos possuem em comum: OBJETOS,
POLIMORFISMO e HERANÇA
- Um objeto é uma entidade lógica que contém dados e
código para manipular estes dados.
- Dentro do objeto alguns códigos e/ou dados podem ser privados ao
objeto.
- A ligação deste código com os dados é
referenciada como encapsulação.
- Um objeto é uma variável de um tipo definido.
- Quando se define um objeto, cria-se um novo tipo de dado.
- Um mesmo nome pode ser usado para muitos propósitos.
- Um nome é usado para especificar uma classe geral de
ações.
- Depende do tipo de dado, uma instância específica é
tratada.
- Exemplo uma função que retira um elemento da pilha, tira( ),
pode ser definida com o mesmo nome para variáveis inteiras ou float e na
hora de usar o compilador sabe qual usar conforme o tipo da variável.
- Um objeto pode adquirir as propriedades de outro objeto.
- Suporta o conceito de classificação
- Por exemplo um maçã vermelha é parte da
classificação maçã.
- Que faz parte da classificação frutas.
- Que esta na classe comida.
- Um objeto precisa definir somente aquelas qualidades que o tornam
único dentro de sua classe.
- Pode herdar as qualidades que compartilha com a classe mais geral.
- Permite um objeto ser uma instância específica de uma classe
mais geral.
Em C++ para se criar um objeto, define-se uma classe class.
Uma CLASS é similar a um estrutura.
Vejamos o exemplo de uma class que define um tipo fila que é usado para
criar o objeto-fila:
class fila {
Chamamos sobrecarga de funções ou overload, quando usamos
o mesmo nome para funções que fazem a mesma coisa porem com
parâmetros de tipos diferentes.
Veja aqui dois exemplos:
Clas02.cpp no FTP ou veja aqui
clas02.cpp
E também outro exemplo de overload
Clas03.cpp no FTP ou veja aqui
clas03.cpp
Também podemos ter sobrecarga de operadores em C++. Assim o operador
>> e o << são usados para operações de entrada
e saída porque no arquivo cabeçalho IOSTREAM.H estes operadores
são sobrecarregados tomando um significado adicional relativo a uma
certa class. Assim também poderíamos ter um operador + que na
class fila funcionaria com a finalidade de adicionar o conteúdo de uma
fila a outra fila já existente.
O conceito de herança é uma das principais características de uma linguagem de programação orientada a objetos.
Assim no exemplo que segue, podemos ver uma class veículos_na_estrada
que define genericamente veículos que trafegam nas estradas.
Depois temos a definição de uma class caminhão a qual
está recebendo como herança as propriedades da class
veículos_na_estrada. A forma de definir esta herança é
como segue:
É muito comum alguma parte do objeto requerer inicialização antes de ser usado. Assim é possível se Ter uma função membro da class que tem o mesmo nome da class a qual será executada na criação do objeto. Da mesma forma temos também uma função detrutora que será usada no final quando o objeto é destruído. O destructor tem o mesmo nome da função contructor porém precedido de ~ . O exemplo que segue ilustra o conceito.
Clas05.cpp no FTP ou veja aqui...
clas05.cpp