380 likes | 455 Views
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.
E N D
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 • Declaração / Inicialização de variáveis • Estruturas de controle • Modificadores de acesso • Classes • Strings e arrays • Arquivos de cabeçalho
Exemplo 1 #include <iostream> int main(){ std::cout << “Hello World!\n”; return 0; //codigo de termino do programa }
Estruturando 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 objetos • Variável do programa • Conta c(/*parametros*/); • Ponteiro na heap do SO • Conta *c = new Conta(/*parametros*/);
Exemplo 2 • Exemplo2.cpp
Destrutores • 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 3 • Exemplo3.cpp
Const • 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 4 • Exemplo4.cpp
I/O • Entrada e saída com streams padrão • std::cout • std::cin • Declarando uso • #include • using
Exemplo 5 • Exemplo5.cpp
I/O com arquivos • Objetos da biblioteca padrão ios e subjacências • Operadores >> e << sobre-carregados
I/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 6 • Exemplo6.cpp
Exercí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
Arrays • 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 7 • Exemplo7.cpp
Exemplo 8 • Exemplo8.cpp
Arrays 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 9 • Exemplo9.cpp
Strings • 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 10 • Exemplo10.cpp
Ponteiros • 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!!!
Ponteiros • Operador & retorna o endereço de uma variável. • Operador * retorna o valor apontado por uma variável. • a++; a--;
Exemplo 11 • Exemplo11.cpp
Herança • Operador “:” • Polimorfismo usando a palavra chave “virtual”. • Se não usar “virtual” é executado o método do tipo de objeto que chamou...
Exemplo 12 • Exemplo12.cpp • Conta.cpp • Conta.h
Herança • Função virtual pura: torna a classe abstrata: • virtual void mover() const = 0; • Usada para simular interfaces em C++
Exemplo 13 • Exemplo13.cpp • Animal.h
Templates (Generics???) • Template de função • Usadas normalmente para executar operações semelhantes sobre tipos de dados diferentes. • Template de classes
Exemplo 14 • Exemplo14.cpp
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