SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++
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++

Mais conteúdo relacionado

Mais procurados

http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - ConceitosMayron Cachina
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 

Mais procurados (19)

http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 

Semelhante a C++ Classes Palestra

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
 
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
 
Aula 04 - Templates e Operators
Aula 04 - Templates e OperatorsAula 04 - Templates e Operators
Aula 04 - Templates e OperatorsPeslPinguim
 
07 construtores e finalize
07   construtores e finalize07   construtores e finalize
07 construtores e finalizeArtur Todeschini
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Ilton Barbosa
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteIlton Barbosa
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?Felipe Volpone
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Thyago Maia
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetosRafael Pinheiro
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
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
 

Semelhante a C++ Classes Palestra (20)

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 )
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao 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#
ebook-completo c# o melhor para começar no c#
 
Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Java7
Java7Java7
Java7
 
Aula 04 - Templates e Operators
Aula 04 - Templates e OperatorsAula 04 - Templates e Operators
Aula 04 - Templates e Operators
 
Aula04
Aula04Aula04
Aula04
 
07 construtores e finalize
07   construtores e finalize07   construtores e finalize
07 construtores e finalize
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a Parte
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Por que você deveria aprender python?
Por que você deveria aprender python?Por que você deveria aprender python?
Por que você deveria aprender python?
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
Aula 3 introducao a orientação a objetos
Aula 3   introducao a orientação a objetosAula 3   introducao a orientação a objetos
Aula 3 introducao a orientação a objetos
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
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++
 

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
 

Último

Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 

Último (20)

Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 

C++ Classes Palestra

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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++