C++ orientado a objetos

Disponível somente no TrabalhosFeitos
  • Páginas : 24 (5976 palavras )
  • Download(s) : 0
  • Publicado : 20 de junho de 2012
Ler documento completo
Amostra do texto
Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer pozzer@inf.ufsm.br 30/07/2009

Introdução a Programação Orientada à Objetos na Linguagem C++
1 – Introdução
A programação orientada a objetos surgiu com o principal objetivo de unir os dados e funções em um único elemento: o objeto. Esta metodologia traz uma série de vantagens sobre linguagens deprogramação procedural, como o C: Reusabilidade: as classes que compõem um sistema podem ser aproveitadas em outros sistemas, sem qualquer alteração, pois dados e funções estão contidos dentro da classe. Caso haja necessidade, pode-se criar novas classes baseadas em outras já existentes, herdando as características da classe pai. (Modularização) Encapsulamento: proteção dos dados contra alteraçõesindevidas. O encapsulamento mantém escondidos dados e métodos do objeto. Pode-se explicitamente declarar o grau de visibilidade de atributos e métodos. Produtividade: A partir do momento que temos a disposição uma coleção de classes devidamente testadas e com um funcionamento a prova de erros, para criar novos sistemas basta usar estas classes, sem nenhuma necessidade de reescrever e adaptarcódigo. Isto dá, sem sombra de dúvida, maior rapidez e, conseqüentemente, produtividade no desenvolvimento de sistemas. A Linguagem C++ é uma extensão da linguagem C que incorpora recursos de Orientação a Objetos. A linguagem C++ herdou todas as características de C, e adiciona recursos de programação orientada a objetos. Sempre que possível será feita uma analogia entre C e C++. OBS: todos os arquivosde um projeto C++ devem ter a extensao .cpp.

2 – Classe
Uma classe é um tipo definido pelo usuário, semelhante a uma estrutura, com o adicional que funções também podem ser inseridas. Estas funções (métodos) vão agir sobre os dados (atributos) da classe. O seguinte exemplo mostra um exemplo hipotético de um fragmento de código em C e seu equivalente em C++. C
typedef struct{ int x, y: }Ponto;void set(Ponto *p, int x, int y) { p->x = x; p->y = y; }

C++
class Ponto { public: int x, y; void set(int a, int b) { x = a; y = b; } }; //não esqueca o “;”

Toda classe deve ter um construtor, que é um método com o mesmo nome da classe, sem valor de retorno. Ele é chamado quanto um objeto é inicializado e nele são definidos, pelo programador, os atributos que devem ser inicializados. Uma classepode ter vários construtores, com diferentes argumentos (sobrecarga). As classes também podem ter um destrutor, que é um método sem parâmetros e sem retorno chamado quando o objeto é desalocado. O destrutor não pode ser chamado explicitamente e tem somente como função fornecer ao compilador o código a ser executado quando o objeto é destruído.

1

#include class Ponto { public: int x, y;Ponto(void) //método construtor { x = y = 0; } ~Ponto(void) //Destrutor. Chamado quando o objeto é liberado { //não faz nada neste caso } }; int main (void) { Ponto p1; //chama o construtor default imediatamente Ponto p2(); //chama o construtor imediatamente Ponto *pp; //não chama o construtor pois pp é ponteiro pp = new Ponto(); //chama o construtor para pp printf("%d %d ", p1.x, pp->x); return0; }

2 – Objeto
Um objeto é uma instância da classe, da mesma forma como uma variável de estrutura em C. Por meio dele é que os métodos e variáveis da classe, ou superclasses, podem ser acessados. Os objetos podem ser alocados de forma estática ou dinâmica, com o seguinte exemplo. C
Ponto p; //variável Ponto *p = (Ponto*) malloc(sizeof(Ponto));

C++
Ponto p; //objeto Ponto *p = new Ponto();

3 –Método
Métodos são funções associadas a uma classe, e são chamadas pelos objetos pertencentes a classe ou por outros métodos da classe. No seguinte exemplo, para fazer a inicialização do Ponto p, em C deve-se chamar a função inicia passando-se a referência de qual variável será inicializada. Em C++, o objeto p chama seu método próprio inicia(int, int) que faz sua inicialização. Este exemplo...
tracking img