uma palavrinha importante em poo ( p rogramação o rientada ao o bjeto)

28
ESCOLA DE ENGENHARIA C++ Programação Orientada ao Objeto

Upload: bairn

Post on 02-Feb-2016

34 views

Category:

Documents


1 download

DESCRIPTION

Albert Einsten. Orlando Silva. Ari Barroso. Uma palavrinha importante em POO ( P rogramação O rientada ao O bjeto). reúso. Vou tornar a usar a Relatividade Restrita... Vou reusá-la para desenvolver a Geral!. Vou dar novo uso às minhas músicas... Vou reusá-las em um novo CD!. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

ESCOLA DE ENGENHARIA

C++Programação Orientada ao Objeto

Page 2: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 2/22

AlbertAlbertEinstenEinsten

AlbertAlbertEinstenEinsten

OrlandoOrlandoSilvaSilva

OrlandoOrlandoSilvaSilva

AriAriBarrosoBarroso

AriAriBarrosoBarroso

reúsoreúsoreúsoreúso• tornar a usar;• dar novo uso a;• efetuar a reuti- lização.

• tornar a usar;• dar novo uso a;• efetuar a reuti- lização.

Vou tornar a usar a Relatividade Restrita...

Vou reusá-la para desenvolver a Geral!

Vou tornar a usar a Relatividade Restrita...

Vou reusá-la para desenvolver a Geral!

Vou dar novo uso às minhas músicas... Vou

reusá-las em um novo CD!

Vou dar novo uso às minhas músicas... Vou

reusá-las em um novo CD!

Vou efetuar a reutilização das minhas músicas...Vou reusá-las

em um novo ritmo!

Vou efetuar a reutilização das minhas músicas...Vou reusá-las

em um novo ritmo!

Uma palavrinha importante em Uma palavrinha importante em POOPOO ((PProgramação rogramação OOrientada ao rientada ao OObjeto)bjeto)

Page 3: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 3/22

MarinhoMarinho

AnimalAnimal

MamiferoMamifero

LeaoLeao HomemHomem

InsetoInseto

MoscaMosca BarataBarataPeixePeixe

Introduzindo a Introduzindo a POOPOO

atributosatributos

operaçõesoperações

ClasseClasse

HomoscaHomosca

Herança múltipla:Homosca é um Homem e uma

Mosca. Também é um Animal, Mamífero e Inseto.

Herança múltipla:Homosca é um Homem e uma

Mosca. Também é um Animal, Mamífero e Inseto.

Herança simplesHerança simples

Page 4: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 4/22

CervideoCervideo

AnimalAnimal

FelinoFelino

GatoGato LeaoLeao

CaninoCanino

LoboLobo CachorroCachorroVeadoVeado

LeaoLoboLeaoLobo

Herança simplesHerança simples

Herança múltiplaHerança múltipla

Sou filho de famosos!

Sou filho de famosos!

ObjetoObjeto

Introduzindo a Introduzindo a POOPOO: brincadeirinha...: brincadeirinha...

ObjetoObjeto

ObjetoObjeto

ObjetoObjeto

Page 5: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 5/22

1.1. encapsulamento;encapsulamento;1.1. encapsulamento;encapsulamento; Propriedade de uma classe incluir ou encerrar atributos

e operações.

Propriedade de uma classe incluir ou encerrar atributos

e operações.

2.2. hereditariedade;hereditariedade;2.2. hereditariedade;hereditariedade;

Propriedade de uma classe transmitir

atributos e operações para as suas descendentes.

Propriedade de uma classe transmitir

atributos e operações para as suas descendentes.

3.3. polimorfismo.polimorfismo.3.3. polimorfismo.polimorfismo. Propriedade de uma classe se

apresentar sob numerosas formas;

multiforme.

Propriedade de uma classe se

apresentar sob numerosas formas;

multiforme.

virtualvirtual** ->-> newnew deletedelete

--

##

++

privateprivate

protectedprotected

publicpublic

Outras Outras trêstrês palavrinhas importantes em palavrinhas importantes em POOPOO

Page 6: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 6/22

• é a especificação mais usada da é a especificação mais usada da OMGOMG• é o meio de modelar:é o meio de modelar:

estrutura da aplicaçãoestrutura da aplicação comportamentocomportamento arquiteturaarquitetura processos de negóciosprocessos de negócios estruturas de dadosestruturas de dados

• www.uml.orgwww.uml.org

• é a especificação mais usada da é a especificação mais usada da OMGOMG• é o meio de modelar:é o meio de modelar:

estrutura da aplicaçãoestrutura da aplicação comportamentocomportamento arquiteturaarquitetura processos de negóciosprocessos de negócios estruturas de dadosestruturas de dados

• www.uml.orgwww.uml.org

Object Management Group

Object Management Group

Veja na Internet: é “di grátis”!

Veja na Internet: é “di grátis”!

UML UML ((UUnified nified MModeling odeling LLanguage)anguage)

Page 7: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 7/22

operaçõesoperações

Nome da ClasseNome da Classe

atributosatributos

em C++class{

...

};

em C++class{

...

};

Exemplo deanotaçãoem UML.

Exemplo deanotaçãoem UML.

Um dos pais da Um dos pais da Programação EstruturadaProgramação Estruturada

Um dos pais da Um dos pais da Programação EstruturadaProgramação Estruturada

As anotações em UML podem se transformar em comentários C++:// de linha/* de bloco */

As anotações em UML podem se transformar em comentários C++:// de linha/* de bloco */

Edsger WybeEdsger WybeDijkstraDijkstra

Edsger WybeEdsger WybeDijkstraDijkstra

iiii jjjj

kkkk

Classes em Classes em UMLUML e C++ e C++((UUnified nified MModeling odeling LLanguage)anguage)

Page 8: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 8/22

-- ##

++

em C++class{ ... private: ...};

em C++class{ ... private: ...};

em C++class{ ... protected: ...};

em C++class{ ... protected: ...};

em C++class{ ... public: ...};

em C++class{ ... public: ...};

Dois pontos!Dois

pontos!

privadaprivadaprivadaprivada protegidaprotegidaprotegidaprotegida

públicapúblicapúblicapública

Dois pontos!Dois

pontos!

Dois pontos!Dois

pontos!

Visibilidade em Visibilidade em UMLUML e C++ e C++

Page 9: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 9/22

Exemplo de uma classe com atributos e operações

surpimidas.

Exemplo de uma classe com atributos e operações

surpimidas.

AlunoAluno

Exemplo de uma classe com atributos e operações

representadas.

Exemplo de uma classe com atributos e operações

representadas.

- nome: String- idade: Integer- nome: String- idade: Integer

+ setNome(nome: String)+ getNome(): String# calcMens(): Double- calcDesc(): Double

+ setNome(nome: String)+ getNome(): String# calcMens(): Double- calcDesc(): Double

AlunoAluno

privadoprivado

públicopúblico

protegidoprotegido

Se isto é tudo que você pode ver, vá estudar!

Se isto é tudo que você pode ver, vá estudar!

ChacrinhaChacrinhaChacrinhaChacrinha

Classes e visibilidade em Classes e visibilidade em UMLUML

Page 10: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 10/22

--

##

++ operaçõesoperações

Nome da ClasseNome da Classe

atributosatributos

em C++private:em C++

private:

em C++protected:em C++

protected:

em C++public:em C++public:

Programamos geralmente dados privados com métodos públicos:• construtores padrão, de cópia, etc (mesmo nome da classe);• destrutores (~);• atribuidores (=);• acessores (set(s) e get(s));• etc.

Programamos geralmente dados privados com métodos públicos:• construtores padrão, de cópia, etc (mesmo nome da classe);• destrutores (~);• atribuidores (=);• acessores (set(s) e get(s));• etc.

Geralmente não significa obrigatoriamente. Pense

sempre em REÚSO!

Geralmente não significa obrigatoriamente. Pense

sempre em REÚSO!

Métodos que realizam acesso, não confunda com

assessor!

Métodos que realizam acesso, não confunda com

assessor!

UMLUML e C++: encapsulamento e C++: encapsulamento

Page 11: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 11/22

Exemplo de um objeto com classe

identificada.

Exemplo de um objeto com classe

identificada.

luisInacioLula: PresidenteluisInacioLula: Presidente

objetoobjeto classeclassedoispontosdoispontos

sublinhadosublinhado

Exemplo de um objeto não

intitulado com classe

identificada.

Exemplo de um objeto não

intitulado com classe

identificada.

: Presidente: Presidente

Exemplo de um objeto intitulado com classe não identificada.

Exemplo de um objeto intitulado com classe não identificada.

luisInacioLula:luisInacioLula:

Representação de objetos em Representação de objetos em UMLUML

Page 12: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 12/22

1.1. construtor padrão;construtor padrão;1.1. construtor padrão;construtor padrão;É um construtor que não

requer argumentos. Se você Se você não definir, o C++ definirá!não definir, o C++ definirá!

É um construtor que não requer argumentos. Se você Se você não definir, o C++ definirá!não definir, o C++ definirá!

2.2. construtor de cópia;construtor de cópia;2.2. construtor de cópia;construtor de cópia; É um construtor que possui um único parâmetro do mesmo tipo que a classe. Se você Se você não definir, o C++ definirá!não definir, o C++ definirá!

É um construtor que possui um único parâmetro do mesmo tipo que a classe. Se você Se você não definir, o C++ definirá!não definir, o C++ definirá!

4.4. atribuidor.atribuidor.4.4. atribuidor.atribuidor.É chamado automaticamente quando o objeto sai do

escopo. Se você não definir, Se você não definir, o C++ definirá!o C++ definirá!

É chamado automaticamente quando o objeto sai do

escopo. Se você não definir, Se você não definir, o C++ definirá!o C++ definirá!

3.3. destrutor;destrutor;3.3. destrutor;destrutor;

É um operador utilizado na atribuição (imputação de valores de um objeto para

outro). Se você não definir, Se você não definir, o C++ definirá!o C++ definirá!

É um operador utilizado na atribuição (imputação de valores de um objeto para

outro). Se você não definir, Se você não definir, o C++ definirá!o C++ definirá!

Bjarne StroustrupBjarne StroustrupBjarne StroustrupBjarne Stroustrup

Criador da Linguagem C++Criador da Linguagem C++Criador da Linguagem C++Criador da Linguagem C++

Se você não definir, o C++

definirá!

Se você não definir, o C++

definirá!

QuatroQuatro pontos importantes em C++ pontos importantes em C++

Page 13: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 13/22

1.1. construtor padrão:construtor padrão:1.1. construtor padrão:construtor padrão:

class NomeDaClasse{ ... NomeDaClasse(); ...};

class NomeDaClasse{ ... NomeDaClasse(); ...};

NomeDaClasse::NomeDaClasse(){ ...}

NomeDaClasse::NomeDaClasse(){ ...}

NomeDaClasse *xp = new NomeDaClasse();...delete xp;

NomeDaClasse *xp = new NomeDaClasse();...delete xp;

NomeDaClasse x;NomeDaClasse x;

NomeDaClasse x = NomeDaClasse();NomeDaClasse x = NomeDaClasse();

Definição da classeDefinição da classe

Definição do

construtor padrão

Definição do

construtor padrão

Chamada do ConstrutorChamada do Construtor

Chamada implícita do Construtor

Chamada implícita do Construtor

Chamada explícita do Construtor

Chamada explícita do Construtor

QuatroQuatro pontos importantes em C++ pontos importantes em C++

Page 14: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 14/22

2.2. construtor de cópia:construtor de cópia:2.2. construtor de cópia:construtor de cópia:

class NomeDaClasse{ ... NomeDaClasse(NomeDaClasse x); ...};

class NomeDaClasse{ ... NomeDaClasse(NomeDaClasse x); ...};

NomeDaClasse::NomeDaClasse(NomeDaClasse x){ ...}

NomeDaClasse::NomeDaClasse(NomeDaClasse x){ ...}

Definição da classeDefinição da classe

Definição do

construtor de cópia

Definição do

construtor de cópia

QuatroQuatro pontos importantes em C++ pontos importantes em C++

Page 15: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 15/22

3.3. destrutor:destrutor:3.3. destrutor:destrutor:

class NomeDaClasse{ ... ~NomeDaClasse(); ...};

class NomeDaClasse{ ... ~NomeDaClasse(); ...};

NomeDaClasse::~NomeDaClasse(){ ...}

NomeDaClasse::~NomeDaClasse(){ ...}

Definição da classeDefinição da classe

Definição do

destrutor

Definição do

destrutor

QuatroQuatro pontos importantes em C++ pontos importantes em C++

Page 16: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 16/22

4.4. atribuidor:atribuidor:4.4. atribuidor:atribuidor:

class NomeDaClasse{ ... NomeDaClasse & operator =(NomeDaClasse &x); ...};

class NomeDaClasse{ ... NomeDaClasse & operator =(NomeDaClasse &x); ...};

NomeDaClasse & NomeDaClasse::operator =(NomeDaClasse &x);{ ...}

NomeDaClasse & NomeDaClasse::operator =(NomeDaClasse &x);{ ...}

Definição da classeDefinição da classe

Definição do

atribuidor

Definição do

atribuidor

QuatroQuatro pontos importantes em C++ pontos importantes em C++

Page 17: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 17/22

RA a b

retânguloretânguloretânguloretângulo

aaaa

bbbb

Verifique:1. construtor padrão;2. construtor de

cópia;3. destruidor;4. atribuidor;5. acessores.

Verifique:1. construtor padrão;2. construtor de

cópia;3. destruidor;4. atribuidor;5. acessores.

Dennis RitchieDennis RitchieDennis RitchieDennis RitchieBrian KernighanBrian KernighanBrian KernighanBrian Kernighan

Criadores da Linguagem CCriadores da Linguagem CCriadores da Linguagem CCriadores da Linguagem C

Exercício 01: Exercício 01: elabore uma classe C++ para abstrair o elabore uma classe C++ para abstrair o

conceito de retângulo. Faça reúso em uma aplicação console.conceito de retângulo. Faça reúso em uma aplicação console.

30 minutos!30 minutos!

Page 18: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 18/22

elipseelipseelipseelipse

aaaa

bbbb

4E

a bA

25 minutos!25 minutos!

Verifique:Verifique:1.1. construtor padrão;construtor padrão;2.2. construtor de cópia;construtor de cópia;3.3. destruidor;destruidor;4.4. atribuidor;atribuidor;5.5. acessores.acessores.

Verifique:Verifique:1.1. construtor padrão;construtor padrão;2.2. construtor de cópia;construtor de cópia;3.3. destruidor;destruidor;4.4. atribuidor;atribuidor;5.5. acessores.acessores.

Exercício 02: Exercício 02: elabore uma classe C++ para abstrair o elabore uma classe C++ para abstrair o

conceito de elipse. Faça reúso em uma aplicação console.conceito de elipse. Faça reúso em uma aplicação console.

Page 19: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 19/22

triângulotriângulotriângulotriângulo

aaaa

bbbbcccc

( ) ( ) ( )TA s s a s b s c 2

a b cs

20 minutos!20 minutos!

Verifique:Verifique:1.1. construtor padrão;construtor padrão;2.2. construtor de cópia;construtor de cópia;3.3. destruidor;destruidor;4.4. atribuidor;atribuidor;5.5. acessores.acessores.

Verifique:Verifique:1.1. construtor padrão;construtor padrão;2.2. construtor de cópia;construtor de cópia;3.3. destruidor;destruidor;4.4. atribuidor;atribuidor;5.5. acessores.acessores.

Exercício 03: Exercício 03: elabore uma classe C++ para abstrair o elabore uma classe C++ para abstrair o

conceito de triângulo. Faça reúso em uma aplicação console.conceito de triângulo. Faça reúso em uma aplicação console.

Page 20: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 20/22

generalização(pinheiro/bananada)

generalização(pinheiro/bananada)

agregação(diamante)agregação(diamante)

composição(diamante negro)

composição(diamante negro)

dependência(seta)

dependência(seta)

associaçãoassociação

““é um”é um”““é um”é um”

““tem um”tem um”““tem um”tem um”

ClasseAClasseA

ClasseBClasseB

ClasseAClasseA

ClasseBClasseB

ClasseAClasseA

ClasseBClasseB

ClasseAClasseA

ClasseBClasseB

Desenhos:Desenhos:

Relacionamentos emRelacionamentos em UML UML

Page 21: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 21/22

Tipo SivirinoTipo Sivirino

11

11

**11

11

0, 10, 111

0..10..1

1, 21, 2 11

11

11

11 **

mult. quantidade de objetos

* qualquer número de objetos

m..n de m até n objetos (m < n)

m,n m ou n objetos

n exatamente n objetos

Page 22: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 22/22

Repitam comigo:Repitam comigo:éhummm, tenhummm, éhummm, éhummm, tenhummm, éhummm,

tenhummm, éhummm, tenhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, ...éhummm, tenhummm, ...

Repitam comigo:Repitam comigo:éhummm, tenhummm, éhummm, éhummm, tenhummm, éhummm,

tenhummm, éhummm, tenhummm, tenhummm, éhummm, tenhummm, éhummm, tenhummm, ...éhummm, tenhummm, ...

““tem um”tem um”““tem um”tem um”

Mahatma Gandhi Mahatma Gandhi

““é um”é um”““é um”é um”

Reflexões de GandhiReflexões de Gandhi

Page 23: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 23/22

CervideoCervideo

AnimalAnimal

FelinoFelino

GatoGato LeaoLeao

CaninoCanino

LoboLobo CachorroCachorroVeadoVeado

LeaoLoboLeaoLobo

Herança simplesHerança simples

Herança múltiplaHerança múltipla

Exemplo de herança em Exemplo de herança em UMLUML

Page 24: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 24/22

Niklaus WirthNiklaus WirthNiklaus WirthNiklaus Wirth

generalizaçãogeneralização

em C++class Derivada: private Base{ ...};

em C++class Derivada: private Base{ ...};

Derivada: Base

private

private

protected

public

em C++class Derivada: public Base{ ...};

em C++class Derivada: public Base{ ...};

Derivada: Base

private private

protected protected

public public

em C++class Derivada: protected Base{ ...};

em C++class Derivada: protected Base{ ...};

Derivada: Base

private private

protectedprotected

public

Esta é a mais usada!

Esta é a mais usada!

Criador do PascalCriador do PascalCriador do PascalCriador do Pascal

UMLUML e C++: hereditariedade “é um” e C++: hereditariedade “é um”

Page 25: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 25/22

nome da classenome da classe

multipli-cidade

multipli-cidade

multipli-cidade

multipli-cidade

nome da classenome da classe

papelpapel papelpapelnome da

associaçãonome da

associaçãodireção da associaçãodireção da associação

mult. quantidade

* qualquer número de objetos

m..n de m até n objetos (m < n)

m,n m ou n objetos

n exatamente n objetos

É a parte que cada objeto desempenha na

associação.

É a parte que cada objeto desempenha na

associação.

Identifica a associação e descreve

o relacionamento.

Identifica a associação e descreve

o relacionamento.

Mostra quem dirige a

associação.

Mostra quem dirige a

associação.

Indica quantos objetos tomam

parte na associação.

Indica quantos objetos tomam

parte na associação.

Associação em Associação em UMLUML

Page 26: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 26/22

AlunoAluno ProfessorProfessor**

estudanteestudante orientado peloorientado pelo orientadororientador

11

OdaliscaOdalisca SultãoSultão4040 11

AlunoAluno ProfessorProfessor11

cumpridorde tarefascumpridorde tarefas

requer tarefas dorequer tarefas do solicitadorsolicitador

1..*1..*

AlunoAluno LousaLousa1..441..44 22

Exemplos de associações em Exemplos de associações em UMLUML

Page 27: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 27/22

Pense no REÚSO em:1. construtores padrão;2. construtores de cópia;3. destruidor;4. atribuidores;5. acessores set(s) e

get(s);6. operadores.

Pense no REÚSO em:1. construtores padrão;2. construtores de cópia;3. destruidor;4. atribuidores;5. acessores set(s) e

get(s);6. operadores.

60 minutos!60 minutos!

Exercício 04: Exercício 04: elabore uma classe C++ para implementar o elabore uma classe C++ para implementar o

conceito de conceito de complexocomplexo. Faça reúso em uma aplicação console.. Faça reúso em uma aplicação console.

Page 28: Uma palavrinha importante em  POO  ( P rogramação  O rientada ao  O bjeto)

C++ - Programando com ClassesC++ - Programando com Classes Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 28/22

<< >><< >> Esteriótipo: é uma forma fixa, uma coisa que não muda, uma convenção. Em UML ele é utilizado para criar a classificação de elementos que não foram definidos como padrão.

Esteriótipo: é uma forma fixa, uma coisa que não muda, uma convenção. Em UML ele é utilizado para criar a classificação de elementos que não foram definidos como padrão.

3.polimorfis-mo de inclusão

em C++:• virtual• * e ->• new• delete

3.polimorfis-mo de inclusão

em C++:• virtual• * e ->• new• delete

4.polimorfismo paramétricoem C++:template

4.polimorfismo paramétricoem C++:template

TTTT

2.sobrecarga2.sobrecarga

1.sobrescrita1.sobrescritaclasse

abstrataem C++

método = 0

classe abstrataem C++

método = 0

NomeDaClasseNomeDaClasse

Repare noItálico!Repare noItálico!

UMLUML e C++: polimorfismo e C++: polimorfismo