Você está na página 1de 23

Introdu c ao Conceitos B asicos Objetos e Classes Recursos interessantes Bibliograa 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 Bibliograa e Conclus ao

Introdu c ao Recursos C e C++ 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 Objetos e Classes Objetos Classes Recursos interessantes Containers, Templates e Operators Bibliograa e Conclus ao Bibliograa O que vem pela frente?
Lucas Lellis Introdu c ao ao C++

Introdu c ao Conceitos B asicos Objetos e Classes Recursos interessantes Bibliograa 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 Bibliograa e Conclus ao

Recursos C e C++

Recursos

uma C melhor E 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 Bibliograa 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 Bibliograa 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 Bibliograa 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 Bibliograa 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 Bibliograa 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 identicadores, 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 Bibliograa 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 oat N umero ponto utuante. double N umero ponto utuante com dupla precis ao.

ng double N umero p. f. longo com dupla precis ao. *O tipo bool eou nico 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 Bibliograa 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 Bibliograa 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 denidas 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 Bibliograa 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 Bibliograa 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 Bibliograa 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 signicados bem denidos 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 Bibliograa 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 Bibliograa e Conclus ao

Objetos Classes

Classes

O que e uma classe? uma forma de CLASSIFICAR um tipo de objetos.. Ou seja, E 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 Bibliograa 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 Bibliograa 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 ocial do PESL!

Lucas Lellis

Introdu c ao ao C++

Introdu c ao Conceitos B asicos Objetos e Classes Recursos interessantes Bibliograa 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, la 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 Bibliograa 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 u til no desenvolvimento de bibliotecas de c odigo aberto, j a que os usu arios podem ter mais exibilidade 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 ocina.
Lucas Lellis Introdu c ao ao C++

Introdu c ao Conceitos B asicos Objetos e Classes Recursos interessantes Bibliograa e Conclus ao

Bibliograa O que vem pela frente?

Refer encias Bibliogr acas


Livros e Sites interessantes 1 Bjarne Stroustrup - A linguagem de programa c ao C++
2

Scott Meyers - Eective C++, Eective STL e More Eective C++ http://www.cplusplus.com/ http://www.cplusplus.com/doc/tutorial/ http://punchlet.wordpress.com/ http://stackoverow.com/ http://www.parashift.com/c++-faq-lite/index.html

3 4 5 6 7

Lucas Lellis

Introdu c ao ao C++

Introdu c ao Conceitos B asicos Objetos e Classes Recursos interessantes Bibliograa e Conclus ao

Bibliograa 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 ocial 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/ Facebook: https://www.facebook.com/PESL.PInguim Youtube: http://www.youtube.com/user/pinguimvideos/
Lucas Lellis Introdu c ao ao C++

3 4

Você também pode gostar