Introdução ao C++ para programadores OO

Preview:

DESCRIPTION

Introdução ao C++ para programadores OO. Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml, rvf}@cin.ufpe.br. Semelhanças com Java. Paradigma Sintaxe Estruturação Código Programa. Tipos Primitivos. Booleano. Inteiros. Ponto flutuante. Sintaxe. - PowerPoint PPT Presentation

Citation preview

Introdução ao C++ para programadores OO

Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira

{fcfl, jpsml, rvf}@cin.ufpe.br

Semelhanças com JavaSemelhanças com Java

• Paradigma

• Sintaxe

• Estruturação– Código– Programa

Tipos PrimitivosTipos Primitivos

Tipo Tamanho

bool {true, false}

byte 8-bit

short 16-bit

int 32-bit

long 64-bit

char 16-bit (unsigned)

float 32-bit

double 64-bitPonto flutuante

Inteiros

Booleano

SintaxeSintaxe

• Declaração / Inicialização de variáveis

• Estruturas de controle

• Modificadores de acesso

• Classes

• Strings e arrays

• Arquivos de cabeçalho

Exemplo 1Exemplo 1

#include <iostream>

int main(){

std::cout << “Hello World!\n”;

return 0; //codigo de termino do programa

}

Estruturando sua classeEstruturando sua classe

• Declarações agrupadas por modificador de acesso

• Assinaturas no corpo da classe

• Definições após o corpo da classe

• Ponto-e-vírgula ao final da classe >=(

– Exemplo1v.cpp

Declarando/Inicializando objetosDeclarando/Inicializando objetos

• Variável do programa– Conta c(/*parametros*/);

• Ponteiro na heap do SO– Conta *c = new Conta(/*parametros*/);

Exemplo 2Exemplo 2

• Exemplo2.cpp

DestrutoresDestrutores

• Desalocam a memória e devolvem para o SO

• Semelhantes ao free de C

• Triviais para objetos sem alocação dinâmica

• São chamados quando o main termina ou quando exit(int) é chamado

Exemplo 3Exemplo 3

• Exemplo3.cpp

ConstConst

• Modificador semelhante ao final de java

• Objetos/variáveis const:– Não modificável. Qualquer tentativa incorre

em erro de compilação.

• Funções const:– Não modificam o objeto

• Const pode ser usado ao passar um parâmetro para uma função.

Exemplo 4Exemplo 4

• Exemplo4.cpp

I/OI/O

• Entrada e saída com streams padrão– std::cout– std::cin

• Declarando uso– #include– using

Exemplo 5Exemplo 5

• Exemplo5.cpp

I/O com arquivosI/O com arquivos

• Objetos da biblioteca padrão ios e subjacências

• Operadores >> e << sobre-carregados

ios

istream ostream

ifstream ofstreamiostream

fstream

I/O com arquivosI/O com arquivos

• Funções mais comuns:– open, close, !, <<, >>, write, read, seekp,

put, eof...

• Permissões do arquivo (ios)– in, out, trunc, app, binary

Exemplo 6Exemplo 6

• Exemplo6.cpp

ExercícioExercício

• Produza um arquivo de texto com dados sobre qualquer tema que você queira (placares de varios jogos de duas equipes, historico de temperatura corporal de um paciente, qualquer coisa) e escreva um programa em C++ que leia estes dados, processe-os (ou não) e imprima dados resultantes na tela.

Introdução ao C++ para programadores OO

Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira

{fcfl, jpsml, rvf}@cin.ufpe.br

ArraysArrays

• int c[12];

• int n [] = { 1, 2, 3, 4, 5 };

• int *array = new int[5];

• Não existe c.length, ou seja, guarde o tamanho do array!!!

Exemplo 7Exemplo 7

• Exemplo7.cpp

Exemplo 8Exemplo 8

• Exemplo8.cpp

Arrays MultidimensionaisArrays Multidimensionais

• int b[2][2];

• int b[2][2] = { { 1, 2 }, { 3, 4 } };

• Não é possível fazer “new” com mais de uma dimensão...

• double **notas = new double*[qtdAlunos];

for(i=0;i<qtdAlunos;i++){

e.notas[i] = new double[e.qtdNotas];

}

Exemplo 9Exemplo 9

• Exemplo9.cpp

StringsStrings

• Strings em C++ podem tanto ser consideradas como um array de caracteres como um objeto.

• #include <string>

• Métodos Principais: append, at, compare, find, insert...

Exemplo 10Exemplo 10

• Exemplo10.cpp

PonteirosPonteiros

• Armazenam endereços de memória• Possuem tipos

– Ponteiro pra int– Ponteiro pra bool

• int *a;• Ponteiros são “PERIGOSOS”

– Segmentation Fault...– Travamentos...– Tela AZUL!!!

PonteirosPonteiros

• Operador & retorna o endereço de uma variável.

• Operador * retorna o valor apontado por uma variável.

• a++; a--;

Exemplo 11Exemplo 11

• Exemplo11.cpp

HerançaHerança

• Operador “:”

• Polimorfismo usando a palavra chave “virtual”.

• Se não usar “virtual” é executado o método do tipo de objeto que chamou...

Exemplo 12Exemplo 12

• Exemplo12.cpp

• Conta.cpp

• Conta.h

HerançaHerança

• Função virtual pura: torna a classe abstrata:– virtual void mover() const = 0;– Usada para simular interfaces em C++

Exemplo 13Exemplo 13

• Exemplo13.cpp

• Animal.h

Templates (Generics???)Templates (Generics???)

• Template de função– Usadas normalmente para executar

operações semelhantes sobre tipos de dados diferentes.

• Template de classes

Exemplo 14Exemplo 14

• Exemplo14.cpp

Ver...Ver...

• Classes e Funções Friend

• Herança Múltipla

• Sobrecarga de Operadores

• Exceções

Introdução ao C++ para programadores OO

Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira

{fcfl, jpsml, rvf}@cin.ufpe.br

Recommended