SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Palestra: Introdu¸c˜ao ao C++
Lucas Santana Lellis
lellis@unifesp.br
PESL - Programa de Educa¸c˜ao em Software livre
Universidade Federal de S˜ao Paulo
20 de Setembro de 2013
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
1 Introdu¸c˜ao
Recursos
C e C++
2 Conceitos B´asicos
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
3 Objetos e Classes
Objetos
Classes
4 Recursos interessantes
Containers, Templates e Operators
5 Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
Introdu¸c˜ao
Foi desenvolvido por Bjarne Stroustrub em 1983, com o nome
”C with classes”
Considerada uma linguagem de m´edio n´ıvel, pois combina
caracter´ısticas de linguagens de alto e baixo n´ıveis.
Possibilita um aprendizado gradual, vocˆe vai aprendendo
conforme as necessidades dos seus projetos.
Surgiu a partir da linguagem C. Apesar disso, a sua forma de
programar ´e muito diferente.
Caracter´ısticas emprestadas das linguagens: Simula 67,
ALGOL 68, Ada, CLU e ML.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
Recursos
´E uma C melhor
Suporta abstra¸c˜ao de dados
Suporte `a orienta¸c˜ao a objetos
Heran¸ca m´ultipla
Programa¸c˜ao gen´erica (Templates)
Fun¸c˜oes virtuais
Sobrecarga de operadores
Tratamento de exce¸c˜oes
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
C e C++
Os c´odigos em C podem ser reaproveitados normalmente em
C++, assim, torna-se desnecess´aria a reescritura dos c´odigos.
Muitas fun¸c˜oes da biblioteca do C podem ser utilizadas em
c´odigos de C++, tornando mais f´acil a adapta¸c˜ao dos
desenvolvedores e de seus projetos.
Sugest˜oes para programadores C:
Declare uma vari´avel somente quando for utiliz´a-la de fato,
inclusive dentro de la¸cos de repeti¸c˜ao (for)
N˜ao use Malloc(), o operador new faz melhor a mesma tarefa.
E, em vez de realloc(), tente vector.
Minimize a utiliza¸c˜ao de arrays primitivos e strings ao estilo de
C. As classes string e vector da biblioteca padr˜ao do C++ s˜ao
mais completas e vers´ateis.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Conceitos B´asicos
Nesse trecho vamos aprender alguns conceitos b´asicos do C++:
A estrutura de um programa;
Os tipos de dados b´asicos e operadores;
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
A estrutura de um programa
Provavelmente, a melhor forma de aprender uma linguagem de
programa¸c˜ao ´e escrevendo um programa, vamos come¸car
lembrando como seria uma implementa¸c˜ao em C do famoso
programa ”Hello World”:
Exemplo 01 - Hello World em C
//Exemplo do programa em C
#include <stdio.h>
#include <stdlib.h>
int main ()
{
printf("Hello World!");
return 0;
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Vejamos agora, o mesmo programa escrito em C++:
Exemplo 02 - Hello World em C++
//Nosso primeiro programa em C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
A estrutura do programa em C++ ´e muito semelhante `a da
linguagem C. A declara¸c˜ao de vari´aveis e fun¸c˜oes, os coment´arios,
os agrupamentos e os la¸cos de repeti¸c˜ao permanecem os mesmos.
Percebe-se a utiliza¸c˜ao de novos operadores e fun¸c˜oes diferentes
para entrada e sa´ıda do console. A fun¸c˜ao cout imprime uma
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Vari´aveis, tipos de dados e operadores
Em C++, assim como era em C, ´e necess´ario declarar uma vari´avel
em um tipo de dados antes de poder utiliz´a-la, ela deve ser
declarada com um tipo e um nome. Por exemplo:
Exemplo 03: Declara¸c˜ao de vari´aveis em C++
int main () {
int a = 2, b(3), soma; /*Podemos declarar as valores
iniciais para as variaveis de duas formas diferentes*/
soma = a + b + 2;
return 0;
}
Cuidado ao nomear suas vari´aveis, elas n˜ao podem sobrescrever os
identificadores, que s˜ao palavras reservadas pela linguagem, nem
sobrescrever outras vari´aveis com o mesmo nome.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Podemos citar alguns tipos de dados fundamentais:
Tipos fundamentais
bool Booleano*, poss´ıveis valores s˜ao true ou false.
char Caract´ere, exemplo: ’a’, ’z’ e ’9’.
int N´umero inteiro, como 1, 12545 e 0.
short N´umero inteiro pequeno
long N´umero inteiro grande
float N´umero ponto flutuante.
double N´umero ponto flutuante com dupla precis˜ao.
ng double N´umero p. f. longo com dupla precis˜ao.
*O tipo bool ´e o ´unico que ainda n˜ao existia na linguagem C.
Obs. : Ao adicionar ”unsigned” antes de qualquer um desses tipos
retira-se a possibilidade de existirem numeros negativos.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Para qualquer um deles, podemos utilizar os seguintes operadores:
Operadores aritm´eticos
+ soma
- subtra¸c˜ao
* multiplica¸c˜ao
/ divis˜ao
% resto da divis˜ao
Operadores de compara¸c˜ao
== igual
!= diferente
< menor
> maior
<= menor ou igual
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
strings
O C++ oferece um suporte mais completo `as strings, agora
definidas pela classe ”string”. Manipul´a-las se tornou uma tarefa
muito mais simples. Veja o exemplo abaixo:
Exemplo 04 - Manipula¸c˜ao de strings
int main (){
string nome = "Bjarne";
string sobrenome("Stroustrup");
string completo = nome + ’ ’ + sobrenome;
cout << "Seu nome completo eh: " << completo << endl;
return 0;
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Um detalhe da linguagem C++, ´e que, para declarar um vetor, ou
matriz primitivos com um tamanho x, n˜ao ´e mais necess´ario
realizar a aloca¸c˜ao dinˆamica, exemplo:
Declara¸c˜ao de vetor de tamanho x
int main (){
int tamanho;
cin >> tamanho;
int[tamanho] vetor; //Isso nao e possivel em C
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Em alguns casos n˜ao ´e poss´ıvel declarar um vetor, ou matriz
diretamente, a aloca¸c˜ao dinˆamica de vari´aveis agora ´e feita atrav´es
do operador new:
Aloca¸c˜ao dinˆamica de uma matriz
int main (){
int lin, col;
cin >> lin >> col;
int** mat = new int* [lin]; //Alocando um vetor de
ponteiros
for(int i = 0; i < lin; i++){
mat[ i ] = new int [ col ];
}
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Objetos
O Mundo Real ´e formado por objetos que interagem entre si (casa,
carro, aluno, professor, etc)
O que ´e um objeto?
Qualquer coisa, real ou abstrata, com limites e significados bem
definidos para a aplica¸c˜ao. Possuem um estado (valores de
atributos) e oferecem opera¸c˜oes (comportamentos) para examinar
ou alterar este estado.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Podemos representar um objeto como uma entidade individual, que
possui seus atributos e suas fun¸c˜oes.
Em C++, os atributos seriam as vari´aveis que guardam suas
informa¸c˜oes. E as fun¸c˜oes, ou ( m´etodos ), s˜ao fun¸c˜oes usadas
para interagir com esse objeto, como uma fun¸c˜ao usada para
mudar algum atributo, por exemplo.
Pera a´ı!
S´o um detalhe, n´os n˜ao programamos objetos diretamente!!
Temos que criar uma CLASSE de objetos antes.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Classes
O que ´e uma classe?
´E uma forma de CLASSIFICAR um tipo de objetos.. Ou seja,
quando dois objetos possuem o mesmo tipo de atributos e as
mesmas fun¸c˜oes, eles pertencem a uma mesma classe.
Assim que criamos uma classe, podemos INSTANCIAR um objeto,
com seus respectivos atributos, que s˜ao individuais para cada
objeto.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Classes em C++
Declarando uma classe.
class nome_da_classe {
//Atributos
int X, Y;
public:
//Metodos
int funcao ( int val ) {
return ( X*val + Y );
}
};
Podemos decidir ”o quˆe” e ”como” as outras classes interagem
com a nossa classe. Por meio do ”encapsulamento”, que ser´a
melhor trabalhado nas pr´oximas palestras.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Recursos interessantes
Nessa parte, ser˜ao apresentados alguns recursos interessantes do
C++, que ser˜ao trabalhados individualmente nas pr´oximas
palestras. Fique atento `as atualiza¸c˜oes da p´agina oficial do PESL!
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Containers, Templates e Operators
O que s˜ao Containers?
Containers s˜ao classes especiais usadas para armazenar qualquer
tipo de objeto ou vari´avel. Muitas estruturas de dados conhecidas
j´a est˜ao implementadas na forma de container, como vetor, fila e
pilha, e o melhor, eles podem ser aplicados para qualquer objeto ou
vari´avel, basta passar o tipo de dados ( ou a classe ) como
parˆametro, ou seja, elas s˜ao classes ”Template”.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Template? Nunca ouvi falar..
Templates s˜ao classes que recebem um tipo de dados, ou at´e outra
classe como parˆametro, ´e uma caracter´ıstica muito favor´avel `a
programa¸c˜ao gen´erica, permitindo que as mesmas linhas de c´odigo
sejam aplicadas em outras partes do programa, ou at´e em outros
projetos. Esse recurso ´e muito ´util no desenvolvimento de
bibliotecas de c´odigo aberto, j´a que os usu´arios podem ter mais
flexibilidade ao usar seus recursos.
Vocˆes ainda v˜ao precisar de um tempo para aprender a usar classes,
e um pouco mais de experiˆencia em C++ para usar e explorar bem
esses recursos. Nas pr´oximas palestras vamos apresentar cada um
desses recursos com muito mais cuidado, mostrando exemplos de
c´odigos, e fazendo exerc´ıcios durante a oficina.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
Referˆencias Bibliogr´aficas
Livros e Sites interessantes
1 Bjarne Stroustrup - A linguagem de programa¸c˜ao C++
2 Scott Meyers - Effective C++, Effective STL e More Effective
C++
3 http://www.cplusplus.com/
4 http://www.cplusplus.com/doc/tutorial/
5 http://punchlet.wordpress.com/
6 http://stackoverflow.com/
7 http://www.parashift.com/c++-faq-lite/index.html
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
O que vem pela frente?
Teremos, em breve, um ciclo de palestras, para podermos explorar
essa linguagem ao m´aximo.. Fique de olho no nosso portal e na
p´agina oficial do facebook. Todos 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 Introdu¸c˜ao ao C++

Mais conteúdo relacionado

Mais procurados

Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Unidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadoresUnidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadoresmariliacherry
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTMLLeonardo Soares
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 

Mais procurados (20)

Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Unidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadoresUnidades de medida do sistema binário dos computadores
Unidades de medida do sistema binário dos computadores
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Introducao a informatica
Introducao a informaticaIntroducao a informatica
Introducao a informatica
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
História e evolução dos computadores
História e evolução dos computadores História e evolução dos computadores
História e evolução dos computadores
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Aula I - Word
Aula I - WordAula I - Word
Aula I - Word
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Informatica Aplicada
Informatica AplicadaInformatica Aplicada
Informatica Aplicada
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Sistema binario
Sistema binarioSistema binario
Sistema binario
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 

Destaque

Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Languagesatvirsandhu9
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisPacc UAB
 
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 c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 
TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++Ellen Diana
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - MatrizesPacc UAB
 

Destaque (14)

SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Language
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
599026
599026599026
599026
 
Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionais
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
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 c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
C++ Presentation
C++ PresentationC++ Presentation
C++ Presentation
 
C++ programming
C++ programmingC++ programming
C++ programming
 

Semelhante a Aula 01 - Introdução ao C++

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
 
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
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Motalucianacmota
 
Aula 04 - Templates e Operators
Aula 04 - Templates e OperatorsAula 04 - Templates e Operators
Aula 04 - Templates e OperatorsPeslPinguim
 
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
 
Tutorial aed iii 009 - algoritmo de ordenação heapsort
Tutorial aed iii   009 - algoritmo de ordenação heapsortTutorial aed iii   009 - algoritmo de ordenação heapsort
Tutorial aed iii 009 - algoritmo de ordenação heapsortFlávio Freitas
 
Palestra: LINQ via C#
Palestra: LINQ via C# Palestra: LINQ via C#
Palestra: LINQ via C# Thiago Vidal
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETJosé Corrêa Viana
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-netSandra Rocha
 
Tutorial aed iii 003 - algoritmo de ordenação shellsort
Tutorial aed iii   003 - algoritmo de ordenação shellsortTutorial aed iii   003 - algoritmo de ordenação shellsort
Tutorial aed iii 003 - algoritmo de ordenação shellsortFlávio Freitas
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 

Semelhante a Aula 01 - Introdução ao C++ (20)

Aula02
Aula02Aula02
Aula02
 
Aula03
Aula03Aula03
Aula03
 
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 )
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
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#
 
Introdução ao LINQ
Introdução ao LINQIntrodução ao LINQ
Introdução ao LINQ
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Aula 04 - Templates e Operators
Aula 04 - Templates e OperatorsAula 04 - Templates e Operators
Aula 04 - Templates e Operators
 
Aula04
Aula04Aula04
Aula04
 
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
 
Tutorial aed iii 009 - algoritmo de ordenação heapsort
Tutorial aed iii   009 - algoritmo de ordenação heapsortTutorial aed iii   009 - algoritmo de ordenação heapsort
Tutorial aed iii 009 - algoritmo de ordenação heapsort
 
Semanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantesSemanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantes
 
Introducao basica-linguagem-java
Introducao basica-linguagem-javaIntroducao basica-linguagem-java
Introducao basica-linguagem-java
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Palestra: LINQ via C#
Palestra: LINQ via C# Palestra: LINQ via C#
Palestra: LINQ via C#
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
 
Tutorial aed iii 003 - algoritmo de ordenação shellsort
Tutorial aed iii   003 - algoritmo de ordenação shellsortTutorial aed iii   003 - algoritmo de ordenação shellsort
Tutorial aed iii 003 - algoritmo de ordenação shellsort
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
LabTeX Presentation
LabTeX  PresentationLabTeX  Presentation
LabTeX Presentation
 

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

Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
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
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
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
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 

Último (20)

Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
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
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
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
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
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
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 

Aula 01 - Introdução ao C++

  • 1. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Palestra: Introdu¸c˜ao ao C++ Lucas Santana Lellis lellis@unifesp.br PESL - Programa de Educa¸c˜ao em Software livre Universidade Federal de S˜ao Paulo 20 de Setembro de 2013 Lucas Lellis Introdu¸c˜ao ao C++
  • 2. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao 1 Introdu¸c˜ao Recursos C e C++ 2 Conceitos B´asicos A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores 3 Objetos e Classes Objetos Classes 4 Recursos interessantes Containers, Templates e Operators 5 Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? Lucas Lellis Introdu¸c˜ao ao C++
  • 3. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ Introdu¸c˜ao Foi desenvolvido por Bjarne Stroustrub em 1983, com o nome ”C with classes” Considerada uma linguagem de m´edio n´ıvel, pois combina caracter´ısticas de linguagens de alto e baixo n´ıveis. Possibilita um aprendizado gradual, vocˆe vai aprendendo conforme as necessidades dos seus projetos. Surgiu a partir da linguagem C. Apesar disso, a sua forma de programar ´e muito diferente. Caracter´ısticas emprestadas das linguagens: Simula 67, ALGOL 68, Ada, CLU e ML. Lucas Lellis Introdu¸c˜ao ao C++
  • 4. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ Recursos ´E uma C melhor Suporta abstra¸c˜ao de dados Suporte `a orienta¸c˜ao a objetos Heran¸ca m´ultipla Programa¸c˜ao gen´erica (Templates) Fun¸c˜oes virtuais Sobrecarga de operadores Tratamento de exce¸c˜oes Lucas Lellis Introdu¸c˜ao ao C++
  • 5. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ C e C++ Os c´odigos em C podem ser reaproveitados normalmente em C++, assim, torna-se desnecess´aria a reescritura dos c´odigos. Muitas fun¸c˜oes da biblioteca do C podem ser utilizadas em c´odigos de C++, tornando mais f´acil a adapta¸c˜ao dos desenvolvedores e de seus projetos. Sugest˜oes para programadores C: Declare uma vari´avel somente quando for utiliz´a-la de fato, inclusive dentro de la¸cos de repeti¸c˜ao (for) N˜ao use Malloc(), o operador new faz melhor a mesma tarefa. E, em vez de realloc(), tente vector. Minimize a utiliza¸c˜ao de arrays primitivos e strings ao estilo de C. As classes string e vector da biblioteca padr˜ao do C++ s˜ao mais completas e vers´ateis. Lucas Lellis Introdu¸c˜ao ao C++
  • 6. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Conceitos B´asicos Nesse trecho vamos aprender alguns conceitos b´asicos do C++: A estrutura de um programa; Os tipos de dados b´asicos e operadores; Lucas Lellis Introdu¸c˜ao ao C++
  • 7. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores A estrutura de um programa Provavelmente, a melhor forma de aprender uma linguagem de programa¸c˜ao ´e escrevendo um programa, vamos come¸car lembrando como seria uma implementa¸c˜ao em C do famoso programa ”Hello World”: Exemplo 01 - Hello World em C //Exemplo do programa em C #include <stdio.h> #include <stdlib.h> int main () { printf("Hello World!"); return 0; } Lucas Lellis Introdu¸c˜ao ao C++
  • 8. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Vejamos agora, o mesmo programa escrito em C++: Exemplo 02 - Hello World em C++ //Nosso primeiro programa em C++ #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } A estrutura do programa em C++ ´e muito semelhante `a da linguagem C. A declara¸c˜ao de vari´aveis e fun¸c˜oes, os coment´arios, os agrupamentos e os la¸cos de repeti¸c˜ao permanecem os mesmos. Percebe-se a utiliza¸c˜ao de novos operadores e fun¸c˜oes diferentes para entrada e sa´ıda do console. A fun¸c˜ao cout imprime uma Lucas Lellis Introdu¸c˜ao ao C++
  • 9. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Vari´aveis, tipos de dados e operadores Em C++, assim como era em C, ´e necess´ario declarar uma vari´avel em um tipo de dados antes de poder utiliz´a-la, ela deve ser declarada com um tipo e um nome. Por exemplo: Exemplo 03: Declara¸c˜ao de vari´aveis em C++ int main () { int a = 2, b(3), soma; /*Podemos declarar as valores iniciais para as variaveis de duas formas diferentes*/ soma = a + b + 2; return 0; } Cuidado ao nomear suas vari´aveis, elas n˜ao podem sobrescrever os identificadores, que s˜ao palavras reservadas pela linguagem, nem sobrescrever outras vari´aveis com o mesmo nome. Lucas Lellis Introdu¸c˜ao ao C++
  • 10. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Podemos citar alguns tipos de dados fundamentais: Tipos fundamentais bool Booleano*, poss´ıveis valores s˜ao true ou false. char Caract´ere, exemplo: ’a’, ’z’ e ’9’. int N´umero inteiro, como 1, 12545 e 0. short N´umero inteiro pequeno long N´umero inteiro grande float N´umero ponto flutuante. double N´umero ponto flutuante com dupla precis˜ao. ng double N´umero p. f. longo com dupla precis˜ao. *O tipo bool ´e o ´unico que ainda n˜ao existia na linguagem C. Obs. : Ao adicionar ”unsigned” antes de qualquer um desses tipos retira-se a possibilidade de existirem numeros negativos. Lucas Lellis Introdu¸c˜ao ao C++
  • 11. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Para qualquer um deles, podemos utilizar os seguintes operadores: Operadores aritm´eticos + soma - subtra¸c˜ao * multiplica¸c˜ao / divis˜ao % resto da divis˜ao Operadores de compara¸c˜ao == igual != diferente < menor > maior <= menor ou igual Lucas Lellis Introdu¸c˜ao ao C++
  • 12. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores strings O C++ oferece um suporte mais completo `as strings, agora definidas pela classe ”string”. Manipul´a-las se tornou uma tarefa muito mais simples. Veja o exemplo abaixo: Exemplo 04 - Manipula¸c˜ao de strings int main (){ string nome = "Bjarne"; string sobrenome("Stroustrup"); string completo = nome + ’ ’ + sobrenome; cout << "Seu nome completo eh: " << completo << endl; return 0; } Lucas Lellis Introdu¸c˜ao ao C++
  • 13. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Um detalhe da linguagem C++, ´e que, para declarar um vetor, ou matriz primitivos com um tamanho x, n˜ao ´e mais necess´ario realizar a aloca¸c˜ao dinˆamica, exemplo: Declara¸c˜ao de vetor de tamanho x int main (){ int tamanho; cin >> tamanho; int[tamanho] vetor; //Isso nao e possivel em C } Lucas Lellis Introdu¸c˜ao ao C++
  • 14. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Em alguns casos n˜ao ´e poss´ıvel declarar um vetor, ou matriz diretamente, a aloca¸c˜ao dinˆamica de vari´aveis agora ´e feita atrav´es do operador new: Aloca¸c˜ao dinˆamica de uma matriz int main (){ int lin, col; cin >> lin >> col; int** mat = new int* [lin]; //Alocando um vetor de ponteiros for(int i = 0; i < lin; i++){ mat[ i ] = new int [ col ]; } } Lucas Lellis Introdu¸c˜ao ao C++
  • 15. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Objetos O Mundo Real ´e formado por objetos que interagem entre si (casa, carro, aluno, professor, etc) O que ´e um objeto? Qualquer coisa, real ou abstrata, com limites e significados bem definidos para a aplica¸c˜ao. Possuem um estado (valores de atributos) e oferecem opera¸c˜oes (comportamentos) para examinar ou alterar este estado. Lucas Lellis Introdu¸c˜ao ao C++
  • 16. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Podemos representar um objeto como uma entidade individual, que possui seus atributos e suas fun¸c˜oes. Em C++, os atributos seriam as vari´aveis que guardam suas informa¸c˜oes. E as fun¸c˜oes, ou ( m´etodos ), s˜ao fun¸c˜oes usadas para interagir com esse objeto, como uma fun¸c˜ao usada para mudar algum atributo, por exemplo. Pera a´ı! S´o um detalhe, n´os n˜ao programamos objetos diretamente!! Temos que criar uma CLASSE de objetos antes. Lucas Lellis Introdu¸c˜ao ao C++
  • 17. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Classes O que ´e uma classe? ´E uma forma de CLASSIFICAR um tipo de objetos.. Ou seja, quando dois objetos possuem o mesmo tipo de atributos e as mesmas fun¸c˜oes, eles pertencem a uma mesma classe. Assim que criamos uma classe, podemos INSTANCIAR um objeto, com seus respectivos atributos, que s˜ao individuais para cada objeto. Lucas Lellis Introdu¸c˜ao ao C++
  • 18. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Classes em C++ Declarando uma classe. class nome_da_classe { //Atributos int X, Y; public: //Metodos int funcao ( int val ) { return ( X*val + Y ); } }; Podemos decidir ”o quˆe” e ”como” as outras classes interagem com a nossa classe. Por meio do ”encapsulamento”, que ser´a melhor trabalhado nas pr´oximas palestras. Lucas Lellis Introdu¸c˜ao ao C++
  • 19. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Recursos interessantes Nessa parte, ser˜ao apresentados alguns recursos interessantes do C++, que ser˜ao trabalhados individualmente nas pr´oximas palestras. Fique atento `as atualiza¸c˜oes da p´agina oficial do PESL! Lucas Lellis Introdu¸c˜ao ao C++
  • 20. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Containers, Templates e Operators O que s˜ao Containers? Containers s˜ao classes especiais usadas para armazenar qualquer tipo de objeto ou vari´avel. Muitas estruturas de dados conhecidas j´a est˜ao implementadas na forma de container, como vetor, fila e pilha, e o melhor, eles podem ser aplicados para qualquer objeto ou vari´avel, basta passar o tipo de dados ( ou a classe ) como parˆametro, ou seja, elas s˜ao classes ”Template”. Lucas Lellis Introdu¸c˜ao ao C++
  • 21. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Template? Nunca ouvi falar.. Templates s˜ao classes que recebem um tipo de dados, ou at´e outra classe como parˆametro, ´e uma caracter´ıstica muito favor´avel `a programa¸c˜ao gen´erica, permitindo que as mesmas linhas de c´odigo sejam aplicadas em outras partes do programa, ou at´e em outros projetos. Esse recurso ´e muito ´util no desenvolvimento de bibliotecas de c´odigo aberto, j´a que os usu´arios podem ter mais flexibilidade ao usar seus recursos. Vocˆes ainda v˜ao precisar de um tempo para aprender a usar classes, e um pouco mais de experiˆencia em C++ para usar e explorar bem esses recursos. Nas pr´oximas palestras vamos apresentar cada um desses recursos com muito mais cuidado, mostrando exemplos de c´odigos, e fazendo exerc´ıcios durante a oficina. Lucas Lellis Introdu¸c˜ao ao C++
  • 22. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? Referˆencias Bibliogr´aficas Livros e Sites interessantes 1 Bjarne Stroustrup - A linguagem de programa¸c˜ao C++ 2 Scott Meyers - Effective C++, Effective STL e More Effective C++ 3 http://www.cplusplus.com/ 4 http://www.cplusplus.com/doc/tutorial/ 5 http://punchlet.wordpress.com/ 6 http://stackoverflow.com/ 7 http://www.parashift.com/c++-faq-lite/index.html Lucas Lellis Introdu¸c˜ao ao C++
  • 23. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? O que vem pela frente? Teremos, em breve, um ciclo de palestras, para podermos explorar essa linguagem ao m´aximo.. Fique de olho no nosso portal e na p´agina oficial do facebook. Todos 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 Introdu¸c˜ao ao C++