Introdução ao C++ para programadores OO Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml,
Semelhanças com Java Paradigma Sintaxe Estruturação –Código –Programa
Tipos Primitivos TipoTamanho bool{true, false} byte8-bit short16-bit int32-bit long64-bit char16-bit (unsigned) float32-bit double64-bit Ponto flutuante Inteiros Booleano
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 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,
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 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,