SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Palestra: Templates e sobrecarga de operadores
Lucas Lellis
Rodrigo Torres
PESL - Programa de Educa¸˜o em Software livre
ca
Universidade Federal de S˜o Paulo
a

18 de Outubro de 2013

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

1

Introdu¸˜o
ca

2

Templates
Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

3

4

Operators
Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a
Conclus˜o
a
O que vem pela frente?

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca

Hoje vamos falar sobre dois conceitos poderosos:

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca

Hoje vamos falar sobre dois conceitos poderosos:
Uma poderosa ferramenta para a programa¸˜o gen´rica, que
ca
e
s˜o os Templates.
a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca

Hoje vamos falar sobre dois conceitos poderosos:
Uma poderosa ferramenta para a programa¸˜o gen´rica, que
ca
e
s˜o os Templates.
a
Uma t´cnica de abstra¸˜o muito interessante, que ´ a
e
ca
e
sobrecarga de operadores.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Templates
O Template , ou ”Gabarito”, foi criado com uma motiva¸˜o
ca
clara, a possibilidade de criar containers como Vector, list e
map, funcionarem independentemente do tipo de classe.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Templates
O Template , ou ”Gabarito”, foi criado com uma motiva¸˜o
ca
clara, a possibilidade de criar containers como Vector, list e
map, funcionarem independentemente do tipo de classe.
Com o tempo, esse recurso se mostrou um grande suporte
para a programa¸˜o gen´rica
ca
e

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Templates
O Template , ou ”Gabarito”, foi criado com uma motiva¸˜o
ca
clara, a possibilidade de criar containers como Vector, list e
map, funcionarem independentemente do tipo de classe.
Com o tempo, esse recurso se mostrou um grande suporte
para a programa¸˜o gen´rica
ca
e
Com ele ´ poss´ usar um tipo como uma parˆmetro na
e
ıvel
a
defini¸˜o de uma classe ou de uma fun¸˜o
ca
ca

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Templates
O Template , ou ”Gabarito”, foi criado com uma motiva¸˜o
ca
clara, a possibilidade de criar containers como Vector, list e
map, funcionarem independentemente do tipo de classe.
Com o tempo, esse recurso se mostrou um grande suporte
para a programa¸˜o gen´rica
ca
e
Com ele ´ poss´ usar um tipo como uma parˆmetro na
e
ıvel
a
defini¸˜o de uma classe ou de uma fun¸˜o
ca
ca
”Tipo” n˜o se refere somente aos tipos b´sicos do C/C++,
a
a
uma vez que tamb´m ´ poss´ usar qualquer classe como
e e
ıvel
parˆmetro.
a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Templates
O Template , ou ”Gabarito”, foi criado com uma motiva¸˜o
ca
clara, a possibilidade de criar containers como Vector, list e
map, funcionarem independentemente do tipo de classe.
Com o tempo, esse recurso se mostrou um grande suporte
para a programa¸˜o gen´rica
ca
e
Com ele ´ poss´ usar um tipo como uma parˆmetro na
e
ıvel
a
defini¸˜o de uma classe ou de uma fun¸˜o
ca
ca
”Tipo” n˜o se refere somente aos tipos b´sicos do C/C++,
a
a
uma vez que tamb´m ´ poss´ usar qualquer classe como
e e
ıvel
parˆmetro.
a
Podemos usar um tipo de classe como um parˆmetro de
a
entrada e definir um nome para ele, e assim, us´-lo
a
normalmente dentro de uma fun¸˜o ou classe
ca
Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

A partir do momento em que se define o template e o tipo
gen´rico, a fun¸˜o e a classe s˜o definidos normalmente, a
e
ca
a
declara¸˜o se d´ da seguinte forma:
ca
a
Exemplo:
template < typename /* ou class */ Tipo >

Podemos usar ”class” ou ”typename”, qualquer um dos dois
funciona da mesma forma, muitos optam por ”class”, por ser mais
simples de digitar. Outros preferem ”typename” pois isso sugere
que o parˆmetro n˜o precisa ser necessariamente uma classe.
a
a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Fun¸oes template
c˜

Esse tipo de estrutura possibilita a cria¸˜o de classes e
ca
fun¸˜es generalistas, podendo ser aplicado ` outras situa¸˜es.
co
a
co

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Fun¸oes template
c˜

Esse tipo de estrutura possibilita a cria¸˜o de classes e
ca
fun¸˜es generalistas, podendo ser aplicado ` outras situa¸˜es.
co
a
co
Um grande benef´ dos templates ´ o feedback imediato
ıcio
e
quanto ` erros durante a compila¸˜o, assim, ´ poss´ evitar,
a
ca
e
ıvel
ou corrigir esses erros, como a utiliza¸˜o de classes
ca
incompat´
ıveis, antes mesmo de executar o programa pela
primeira vez.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Abaixo, o exemplo de uma fun¸˜o bem simples, usando esse
ca
recurso.
teste
template <class T> //no lugar de class tambem pode ser
usado typename
void soma (T a, T b)
{
T soma = a + b; /*A funcao so ira funcionar em classes
que suportem a utilizacao do operador ’+’ */
cout << soma;
}

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Em muitos casos, utilizam-se operadores, como o de adi¸˜o, o
ca
de atribui¸˜o, ou o de sa´
ca
ıda. A utiliza¸˜o deles n˜o ´ feita de
ca
a e
forma abstrata, assim, nesses casos, ser´ necess´ria a
a
a
implementa¸˜o da sobrecarga de operadores, e possivelmente,
ca
do construtor c´pia.
o

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Em muitos casos, utilizam-se operadores, como o de adi¸˜o, o
ca
de atribui¸˜o, ou o de sa´
ca
ıda. A utiliza¸˜o deles n˜o ´ feita de
ca
a e
forma abstrata, assim, nesses casos, ser´ necess´ria a
a
a
implementa¸˜o da sobrecarga de operadores, e possivelmente,
ca
do construtor c´pia.
o
Muitas vezes n˜o ´ necess´rio passar o tipo de dados como
a e
a
parˆmetro ao utilizar uma fun¸˜o template simples.
a
ca

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Abaixo, um exemplo da utiliza¸˜o da fun¸˜o soma(), com trˆs
ca
ca
e
tipos de dados diferentes:
Exemplo
main () {
int a = 10, b = 15;
double x = 13, y = 34,87;
Coordenada c1(10,52), c2(25,58);
soma(a,b);
soma(x,y);
soma(c1,c2); //Precisa de sobrecarga de operador
}

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

1

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Nesse ultimo caso, se n˜o houver o operador de adi¸˜o, o
´
a
ca
c´digo n˜o ir´ compilar.
o
a a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

1

2

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Nesse ultimo caso, se n˜o houver o operador de adi¸˜o, o
´
a
ca
c´digo n˜o ir´ compilar.
o
a a
´ ´bvio que no caso das somas a + b e x + y , isso ocorrer´
Eo
a
normalmente, mas n˜o pode-se afirmar com certeza quanto a
a
c1 e c2.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

1

2

3

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Nesse ultimo caso, se n˜o houver o operador de adi¸˜o, o
´
a
ca
c´digo n˜o ir´ compilar.
o
a a
´ ´bvio que no caso das somas a + b e x + y , isso ocorrer´
Eo
a
normalmente, mas n˜o pode-se afirmar com certeza quanto a
a
c1 e c2.
Para ser utilizada a fun¸˜o soma, nesse exemplo, a fun¸˜o
ca
ca
coordenada deve ter a fun¸˜o de sobrecarga dos operadores
ca
soma + e sa´ <<, ou o c´digo n˜o ir´ compilar.
ıda
o
a a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Classes template
O mesmo princ´ pode ser utilizado para definir classes gen´ricas,
ıpio
e
ou containers, como a classe array, da biblioteca padr˜o. A classe ´
a
e
definida da seguinte forma:
exemplo
template <class T, size_t N> class array;

Nesse caso, s˜o recebidos dois parˆmetros, separados por uma
a
a
v´
ırgula, o primeiro ´ uma classe, que ir´ definir o tipo de dados que
e
a
comp˜e esse array, e o segundo, um valor representando um
o
tamanho fixo.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Neste caso, foi instanciado um array do tipo int com 10 posi¸˜es, a
co
classe array possui um operador que permite um acesso r´pido `
a
a
cada elemento, e retorna um valor do tipo T ( int ).
exemplo
main()
{
std::array <int,10> myarray;
for (int i = 0; i < 10; i++)
myarray[i] = i * 10;
for (i=0; i<10; i++)
cout << myarray[i];
}

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Esta ´ s´ uma introdu¸˜o aos templates, existem muitos
e o
ca
outros recursos espec´
ıficos do template que n˜o foram
a
abordados.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Fun¸˜es Template
co
Classes Template

Esta ´ s´ uma introdu¸˜o aos templates, existem muitos
e o
ca
outros recursos espec´
ıficos do template que n˜o foram
a
abordados.
Recomendamos um estudo aprofundado atrav´s da
e
bibliografia.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Sobrecarga de operadores
1

Operator ´ um recurso que possibilita a cria¸˜o de fun¸˜es
e
ca
co
que atuam sob operadores.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Sobrecarga de operadores
1

Operator ´ um recurso que possibilita a cria¸˜o de fun¸˜es
e
ca
co
que atuam sob operadores.

2

Quando bem utilizado, esse recurso pode auxiliar tamb´m na
e
implanta¸˜o de templates, como visto anteriormente.
ca

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Sobrecarga de operadores
1

Operator ´ um recurso que possibilita a cria¸˜o de fun¸˜es
e
ca
co
que atuam sob operadores.

2

Quando bem utilizado, esse recurso pode auxiliar tamb´m na
e
implanta¸˜o de templates, como visto anteriormente.
ca

3

Para ser utilizada a fun¸˜o soma, nesse exemplo, a fun¸˜o
ca
ca
coordenada deve ter a fun¸˜o de sobrecarga dos operadores
ca
soma + e sa´ <<, ou o c´digo n˜o ir´ compilar.
ıda
o
a a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Sobrecarga de operadores
1

Operator ´ um recurso que possibilita a cria¸˜o de fun¸˜es
e
ca
co
que atuam sob operadores.

2

Quando bem utilizado, esse recurso pode auxiliar tamb´m na
e
implanta¸˜o de templates, como visto anteriormente.
ca

3

Para ser utilizada a fun¸˜o soma, nesse exemplo, a fun¸˜o
ca
ca
coordenada deve ter a fun¸˜o de sobrecarga dos operadores
ca
soma + e sa´ <<, ou o c´digo n˜o ir´ compilar.
ıda
o
a a

4

A sobrecarga de operadores consegue abstrair fun¸˜es
co
complexas com elegˆncia e simplicidade. Podendo ser
a
utilizada, por exemplo para uma soma ou multiplica¸˜o de
ca
matrizes.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Em C++ podemos fazer sobrecarga de fun¸˜es, ou seja, podemos
co
criar duas fun¸˜es com o mesmo nome, desde que seus parˆmetros
co
a
n˜o sejam semelhantes.
a
Exemplo ( C++ )
int soma ( int a, int b) {
return a + b;
}
int soma ( int a, int b, int c ) {
return a + b + c;
}

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Parˆmetros ”default”
a

As fun¸˜es operadoras que podem ser declaradas s˜o:
co
a
Operadores
+ - * / % ^ & | ~! = < > += -= *= /= %= ^= &= |= >> <<
>>= <<= == != <= >= && || ++ -- ->* , -> [] 90
new new[] delete delete[]

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Um operator ´ uma fun¸˜o, que ´ declarada com o nome
e
ca
e
’operator’ seguido de um dos operadores apresentados
anteriormente. A implementa¸˜o interna de um operador ´
ca
e
idˆntica a de uma fun¸˜o comum, com algumas particularidades.
e
ca
Exemplo
class Circulo {
public:
int x, y, r;
Circulo operator+= ( const Circulo &other ){
x = img.x;
y = img.y;
r = img.r;
}
};

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Operadores Bin´rios e Un´rios
a
a
1

Um operador bin´rio definido por uma fun¸˜o n˜o-membro
a
ca a
recebe duas entradas ao mesmo tempo.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Operadores Bin´rios e Un´rios
a
a
1

Um operador bin´rio definido por uma fun¸˜o n˜o-membro
a
ca a
recebe duas entradas ao mesmo tempo.

2

Em alguns casos, h´ a necessidade de realizar a sobrecarga de
a
operadores, ou seja, criar v´rias vers˜es do operador @ de
a
o
forma que o operador abranja o maior numero de opera¸˜es
co
poss´
ıvel.

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Operadores Bin´rios e Un´rios
a
a
1

Um operador bin´rio definido por uma fun¸˜o n˜o-membro
a
ca a
recebe duas entradas ao mesmo tempo.

2

Em alguns casos, h´ a necessidade de realizar a sobrecarga de
a
operadores, ou seja, criar v´rias vers˜es do operador @ de
a
o
forma que o operador abranja o maior numero de opera¸˜es
co
poss´
ıvel.

3

Esse operador pode ser definido como uma fun¸˜o membro
ca
n˜o-est´tica, esse tipo de fun¸˜o recebe apenas um
a
a
ca
parˆmetro, que ir´ interagir com o objeto do qual ele ´
a
a
e
membro. Ou, como uma fun¸˜o n˜o-membro, recebendo dois
ca a
parˆmetros que interagem entre si.
a

Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

Introdu¸˜o
ca
Parˆmetros default
a
Sobrecarga de Construtores e fun¸˜es da classe
co
Operadores bin´rios e un´rios
a
a

Exemplo
class X{
public:
void operator+ (int val ); //Operador interno, Objeto
X( int val );
};
void operator+ (X a, X b ); //Operadores externos
void operator+ (X a, double val );
void f(X a){
a + 1; // a.operator+ (1) - objeto ’a’ do tipo X
interagindo com um numero inteiro
1 + a; // ::operator+ (X(1), a) - Interpreta 1 como um
parametro do construtor X(int), interage com um
objeto ’a’ do tipo X
a + 1.0; // ::operator+ (a, 1.0) - objeto ’a’ do tipo
X interagindo com numero do tipo float
}
Lucas Lellis e Rodrigo Torres

Templates e Operators
Introdu¸˜o
ca
Templates
Operators
Conclus˜o
a

O que vem pela frente?

O que vem pela frente?
Teremos palestras todas as sextas-feiras, abordando cada vez
novos conceitos sobre C++. A pr´xima aula ter´ exerc´
o
a
ıcios
pr´ticos sobre Templates e Sobrecarga de operadores. Lembrando
a
que todas as apresenta¸˜es desse ciclo de palestras ser˜o colocadas
co
a
no moodle do PESL!
Nossos canais de comunica¸˜o
ca
1 MOODLE do PESL - Curso de C++ :
http://pinguim.pro.br/moodle/course/view.php?id=6
2

Portal do Programa de Educa¸˜o em Software Livre
ca
http://pinguim.pro.br/

3

Facebook: https://www.facebook.com/PESL.PInguim

4

Youtube: http://www.youtube.com/user/pinguimvideos/
Lucas Lellis e Rodrigo Torres

Templates e Operators

Mais conteúdo relacionado

Destaque

Aula 03 - Classes em C++ ( Parte 2 )
Aula 03 - Classes em C++ ( Parte 2 )Aula 03 - Classes em C++ ( Parte 2 )
Aula 03 - Classes em C++ ( Parte 2 )PeslPinguim
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2Rogerio Oliveira
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoRegis Magalhães
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )PeslPinguim
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Apresentação Final Projeto de Software
Apresentação Final Projeto de SoftwareApresentação Final Projeto de Software
Apresentação Final Projeto de Softwareiltonsdaniel
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Desenvolvendo a Criatividade
Desenvolvendo a CriatividadeDesenvolvendo a Criatividade
Desenvolvendo a Criatividadetati_spazziano
 

Destaque (20)

Aula 03 - Classes em C++ ( Parte 2 )
Aula 03 - Classes em C++ ( Parte 2 )Aula 03 - Classes em C++ ( Parte 2 )
Aula 03 - Classes em C++ ( Parte 2 )
 
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
Aulas TSI32B - Estrutura, Pesquisa e Ordenação de Dados (TSI UTFPR-Toledo)
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Pged 07
Pged 07Pged 07
Pged 07
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Métodos de Ordenação
Métodos de Ordenação Métodos de Ordenação
Métodos de Ordenação
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Apresentação Final Projeto de Software
Apresentação Final Projeto de SoftwareApresentação Final Projeto de Software
Apresentação Final Projeto de Software
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistema
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Desenvolvendo a Criatividade
Desenvolvendo a CriatividadeDesenvolvendo a Criatividade
Desenvolvendo a Criatividade
 

Semelhante a Aula 04 - Templates e Operators

Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#biandamakengo08
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Jhonefj
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtorRafael Pinheiro
 
Analise_OO1a_Introducao.ppt
Analise_OO1a_Introducao.pptAnalise_OO1a_Introducao.ppt
Analise_OO1a_Introducao.pptssuser12105c
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 

Semelhante a Aula 04 - Templates e Operators (20)

Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
poster
posterposter
poster
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Samuel ta1.pps
Samuel ta1.ppsSamuel ta1.pps
Samuel ta1.pps
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Aula1
Aula1Aula1
Aula1
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
Aula03
Aula03Aula03
Aula03
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Sistema acadêmico
Sistema acadêmicoSistema acadêmico
Sistema acadêmico
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
 
Analise_OO1a_Introducao.ppt
Analise_OO1a_Introducao.pptAnalise_OO1a_Introducao.ppt
Analise_OO1a_Introducao.ppt
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 

Mais de PeslPinguim

Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao ArduinoPeslPinguim
 
Aula 4 redes Inclusão Digital
Aula 4 redes Inclusão DigitalAula 4 redes Inclusão Digital
Aula 4 redes Inclusão DigitalPeslPinguim
 
Aula 3 parte 2 software Inclusão Digital
Aula 3 parte 2 software Inclusão DigitalAula 3 parte 2 software Inclusão Digital
Aula 3 parte 2 software Inclusão DigitalPeslPinguim
 
Aula 3 software Inclusão Digital
Aula 3 software Inclusão DigitalAula 3 software Inclusão Digital
Aula 3 software Inclusão DigitalPeslPinguim
 
Aula 2 parte 2 hardware Inclusão Digital
Aula 2 parte 2 hardware Inclusão DigitalAula 2 parte 2 hardware Inclusão Digital
Aula 2 parte 2 hardware Inclusão DigitalPeslPinguim
 
Aula 2 hardware Inclusão Digital
Aula 2 hardware Inclusão DigitalAula 2 hardware Inclusão Digital
Aula 2 hardware Inclusão DigitalPeslPinguim
 
Aula 1 apresentacao
Aula 1 apresentacaoAula 1 apresentacao
Aula 1 apresentacaoPeslPinguim
 
Aula 5 internet Inclusão Digital
Aula 5 internet Inclusão DigitalAula 5 internet Inclusão Digital
Aula 5 internet Inclusão DigitalPeslPinguim
 
Apresentação1_
Apresentação1_Apresentação1_
Apresentação1_PeslPinguim
 
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10PeslPinguim
 
Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 5Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 5PeslPinguim
 
Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4PeslPinguim
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1PeslPinguim
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7PeslPinguim
 
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3PeslPinguim
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2PeslPinguim
 
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9PeslPinguim
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 PeslPinguim
 
Eletrônica aplicada - interruptor sonoro
Eletrônica aplicada - interruptor sonoroEletrônica aplicada - interruptor sonoro
Eletrônica aplicada - interruptor sonoroPeslPinguim
 

Mais de PeslPinguim (20)

Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Aula 4 redes Inclusão Digital
Aula 4 redes Inclusão DigitalAula 4 redes Inclusão Digital
Aula 4 redes Inclusão Digital
 
Aula 3 parte 2 software Inclusão Digital
Aula 3 parte 2 software Inclusão DigitalAula 3 parte 2 software Inclusão Digital
Aula 3 parte 2 software Inclusão Digital
 
Aula 3 software Inclusão Digital
Aula 3 software Inclusão DigitalAula 3 software Inclusão Digital
Aula 3 software Inclusão Digital
 
Aula 2 parte 2 hardware Inclusão Digital
Aula 2 parte 2 hardware Inclusão DigitalAula 2 parte 2 hardware Inclusão Digital
Aula 2 parte 2 hardware Inclusão Digital
 
Aula 2 hardware Inclusão Digital
Aula 2 hardware Inclusão DigitalAula 2 hardware Inclusão Digital
Aula 2 hardware Inclusão Digital
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Aula 1 apresentacao
Aula 1 apresentacaoAula 1 apresentacao
Aula 1 apresentacao
 
Aula 5 internet Inclusão Digital
Aula 5 internet Inclusão DigitalAula 5 internet Inclusão Digital
Aula 5 internet Inclusão Digital
 
Apresentação1_
Apresentação1_Apresentação1_
Apresentação1_
 
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 10
 
Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 5Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 5
 
Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 4
 
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 1
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
 
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 3
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 9
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
 
Eletrônica aplicada - interruptor sonoro
Eletrônica aplicada - interruptor sonoroEletrônica aplicada - interruptor sonoro
Eletrônica aplicada - interruptor sonoro
 

Aula 04 - Templates e Operators