Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Palestra: Classes em C++
Lucas Lellis
Rodrigo Torres
PESL - Programa ...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
1 Introdu¸c˜ao
2 Organiza¸c˜ao
3 Novos recursos
Sobrecarga de fun¸c˜o...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Introdu¸c˜ao
Na aula anterior definimos melhor o conceito de classe e
...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Informa¸c˜oes b´asicas sobre a organiza¸c˜ao
Podemos organizar os nos...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Guardas de inclus˜ao
Quando fazemos uma compila¸c˜ao de arquivos sepa...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Sobrecarga de fun¸c˜oes
Parˆametros default
Sobrecarga de Construtore...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Sobrecarga de fun¸c˜oes
Parˆametros default
Sobrecarga de Construtore...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Sobrecarga de fun¸c˜oes
Parˆametros default
Sobrecarga de Construtore...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Sobrecarga de fun¸c˜oes
Parˆametros default
Sobrecarga de Construtore...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
Sobrecarga de fun¸c˜oes
Parˆametros default
Sobrecarga de Construtore...
Introdu¸c˜ao
Organiza¸c˜ao
Novos recursos
Conclus˜ao
O que vem pela frente?
O que vem pela frente?
Teremos palestras todas...
Upcoming SlideShare
Loading in …5
×

Aula03

104 views
76 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
104
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula03

  1. 1. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Palestra: Classes em C++ Lucas Lellis Rodrigo Torres PESL - Programa de Educa¸c˜ao em Software livre Universidade Federal de S˜ao Paulo 04 de Outubro de 2013 Lucas Lellis e Rodrigo Torres Classes em C++
  2. 2. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao 1 Introdu¸c˜ao 2 Organiza¸c˜ao 3 Novos recursos Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos Membros est´aticos (static) 4 Conclus˜ao O que vem pela frente? Lucas Lellis e Rodrigo Torres Classes em C++
  3. 3. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Introdu¸c˜ao Na aula anterior definimos melhor o conceito de classe e objeto, e aprendemos como implement´a-las em C++. Por´em, tudo estava sendo implementado no mesmo arquivo, e deixamos alguns conceitos de lado. Nesta aula vamos aprender novas t´ecnicas de organiza¸c˜ao dos nossos projetos, falar sobre ponteiros em classes, a palavra ”this” e os membros ”static”. Lucas Lellis e Rodrigo Torres Classes em C++
  4. 4. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Informa¸c˜oes b´asicas sobre a organiza¸c˜ao Podemos organizar os nossos projetos colocando as nossas classes em arquivos separados, essa organiza¸c˜ao se d´a de duas formas: Cabe¸calhos e defini¸c˜ao da classe em um arquivo ”Nome-da-classe.h”, implementa¸c˜ao das fun¸c˜oes ficam no arquivo ”Nome-da-classe.cpp”. Defini¸c˜ao, cabe¸calhos e implementa¸c˜ao em um mesmo arquivo ”Nome-da-classe.hpp” Lucas Lellis e Rodrigo Torres Classes em C++
  5. 5. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Guardas de inclus˜ao Quando fazemos uma compila¸c˜ao de arquivos separados, ´e poss´ıvel que haja redundˆancias, como a dupla inclus˜ao de um cabe¸calho de uma classe. Ou cabe¸calhos que se incluem mutuamente. Esse tipo de redundˆancia pode levar `a erros de compila¸c˜ao. A solu¸c˜ao ´e inserir os Guardas de inclus˜ao: Exemplo #ifndef CLASSE_H #define CLASSE_H class nome_da_classe { //Atributos //Metodos }; #endif //CLASSE_H Lucas Lellis e Rodrigo Torres Classes em C++
  6. 6. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos Sobrecarga de fun¸c˜oes Na linguagem C n´os nunca poder´ıamos criar fun¸c˜oes diferentes com o mesmo nome. Se eu precisasse de uma fun¸c˜ao idˆentica, mas com parˆametros diferentes eu teria que criar uma nova fun¸c˜ao. Exemplo ( C ) int soma ( int a, int b) { return a + b; } int soma3 ( int a, int b, int c ) { return a + b + c; } Lucas Lellis e Rodrigo Torres Classes em C++
  7. 7. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos Em C++ podemos fazer sobrecarga de fun¸c˜oes, ou seja, podemos criar duas fun¸c˜oes com o mesmo nome, desde que seus parˆametros n˜ao sejam semelhantes. 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 Classes em C++
  8. 8. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos Parˆametros ”default” Muitas vezes n´os criamos duas fun¸c˜oes diferentes s´o por causa de um parˆametro espec´ıfico. Podemos economizar algumas linhas definindo valores-padr˜ao para um parˆametro. Exemplo int soma ( int a, int b, int c = 0 ) { return a + b + c; } int soma ( int x, int y ) { /* .. */} ; //NAO PODE!! Tome cuidado para n˜ao sobrecarregar outras fun¸c˜oes parecidas, como no caso acima! Lucas Lellis e Rodrigo Torres Classes em C++
  9. 9. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos Sobrecarga de Construtores e fun¸c˜oes da classe Da mesma forma que fizemos naquelas fun¸c˜oes simples, uma classe pode ter mais de uma fun¸c˜ao com o mesmo nome, al´em disso, podemos ter mais de um construtor. Exemplo class Circulo { public: Circulo ( int X, int Y, int r ); //Construtor 1 Circulo ( int X, int Y ); //Construtor 2 }; Mas cuidado, as vezes ´e mais f´acil definir um valor default. Lucas Lellis e Rodrigo Torres Classes em C++
  10. 10. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao Sobrecarga de fun¸c˜oes Parˆametros default Sobrecarga de Construtores e fun¸c˜oes da classe C´opia de objetos C´opia de objetos Existem construtores especiais, que podem receber um objeto da pr´opria classe como parˆametro, oferecendo a possibilidade de vocˆe criar uma c´opia de um objeto. Normalmente eles j´a est˜ao implementados por padr˜ao. Exemplo class Circulo { public: Circulo ( int X, int Y, int r ); //Construtor 1 Circulo ( const Circulo& ori ) { X = ori.X; Y = ori.Y; r = ori.r; } }; Lucas Lellis e Rodrigo Torres Classes em C++
  11. 11. Introdu¸c˜ao Organiza¸c˜ao Novos recursos Conclus˜ao 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´oxima ser´a ”Classes - Parte 2”, onde aprofundaremos nossos conhecimentos sobre as classes em C++.Lembrando que todas as apresenta¸c˜oes desse ciclo de palestras ser˜ao colocadas no moodle do PESL! Nossos canais de comunica¸c˜ao 1 MOODLE do PESL - Curso de C++ : http://pinguim.pro.br/moodle/course/view.php?id=6 2 Portal do Programa de Educa¸c˜ao em Software Livre 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 Classes em C++

×