Top Banner
Programação Avançada C++ Slide 10 Nielsen Castelo Damasceno
75

Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Jan 20, 2019

Download

Documents

trankhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Programação Avançada C++Slide 10Nielsen Castelo Damasceno

Page 2: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Função inline• O qualificador antes do tipo de retorno da

função na definição da função diz ao compilador para gerar uma cópia daquela função, para evitar uma chamada da função.

• Overhead durante a execução.• Desvantagem é que são geradas múltiplas cópias

da função no programa.• Sempre que puder use o inline para funções

pequenas.

Page 3: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Função inline

Page 4: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Operador resolução de escopo• É possível declarar variáveis locais e globais com

o mesmo nome utilizando o operador unário (::).

Page 5: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Sobrecarga de funções

Page 6: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas• Os tipos básicos (int, char, double e void) representam um

único item de informação. A partir dos tipos básicos, pode-se definir tipos complexos os quais permitirão agrupar um conjunto de variáveis de tipos iguais (vetores e matrizes) ou diferentes (estruturas, classes e uniões) sob um único nome.

• Uma estrutura é um agrupamento de elementos de dados sob um mesmo nome. Estes elementos de dados, denominados membros, podem ter diferentes tipos e diferentes tamanhos.

• Estruturas também podem conter funções que manipulam seus dados. Porém este enfoque será visto apenas no capítulo de “Classes”.

Page 7: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas

Page 8: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

EstruturasNo exemplo anterior, foi criado uma estrutura para representar um produto e na sequência foram instanciadas duas variáveis do tipo produto de nome “caneta” e “lápis”.

Page 9: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas• Quando se declara uma estrutura, nenhuma área de

memória é reservada. Simplesmente estamos informando ao compilador a criação de um novo tipo de dados.

• Uma estrutura é um tipo definido pelo programador, portanto a definição de uma variável desse novo tipo é semelhante à definição de variáveis dos tipos básicos:

produto caneta; aluno aluno01; agencia Ag; Conta cValor; Conta cMatriz[10];

Page 10: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Acesso aos membros da estruturas• Para ter acesso à variável membro de um estrutura utiliza-

se o operador ponto ( . ) que fará a conexão da variável estrutura a um membro dela.

Page 11: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas

Page 12: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas

Page 13: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Estruturas

Page 14: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Inicialização e atribuição de estruturas • O processo de inicialização de uma variável estrutura é

semelhante à inicialização de uma matriz. Ex.: produto caneta = { 2, 1.2 };

• Se duas variáveis forem do mesmo tipo de estrutura, a atribuição pode ser feita de maneira tradicional.

Page 15: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Array de estruturas• A declaração de um array de estruturas ocorre da mesma

forma que uma variável estrutura.

• Inicialização de array de estruturas na declaração:

Page 16: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Array de estruturas• O acesso aos elementos de um array de estruturas é feito

no formato:

• Exemplo:

Page 17: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Arrays com Enum

Page 18: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Ponteiro para ponteiro

Page 19: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Ponteiro para ponteiro

Page 20: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

struct para ponteiro

Page 21: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

struct com ponteiro

Page 22: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

struct com ponteiro

Page 23: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Exercício• Crie uma função que passa como parâmetro um

ponteiro para um variável qualquer .• A função main deve chamar essa função e alterar

a variável utilizando o ponteiro.• Utilize o operador new e delete.

Page 24: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Overflow

Page 25: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Exercício• Crie um array de estrutura chamado ALUNO que

contem os seguintes elementos: código, nome, dia matricula, mês matricula, ano matricula, nome do curso.

• O sistema deve ser capaz de cadastrar os alunos e apresentar a lista de arrays desta estrutura através de uma função.

• Utilize ponteiros e funções

Page 26: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Programação Orientado a Objeto• Aproveitamento do código, POO não é nova, sua

formulação inicial foi em 1960. Porém, somente a partir dos anos 90 é que passou a ser usada.

• Função e dados estão junto, formando o objeto.• A Análise Orientada a Objeto (AOO) tem uma

série de conceitos que auxiliam as pessoas a delinear claramente o problema e a identificar os objetos e seus relacionamentos.

Page 27: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Abstração• Significa concentrar-se no que um objeto é e faz

antes de se decidir como ele será implementado.• Compreender um sistema, concreto ou não, e

criar um modelo documentado e padronizado que reflita seu comportamento.

• “Processo de modelagem de sistema concreto ou não, extraindo do seu contexto os principais objetos e descrevendo-os por meio da discriminação de suas propriedades e funcionalidades.

Page 28: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Abstração• Os objetos do sistema, são conceituais e suas

características dividem-se em duas categorias:

Propriedades (atributos): descrevem o objeto, seus possíveis estados e o papel que ele desempenha no sistema.Funcionalidades (métodos): descrevem a ação do objeto e representam o seu comportamento dentro do sistema.

Estamos criando uma classe representando um determinado objeto.Usamos as classes para definir tipos de objetos (conjunto de objetos com propriedades e funcionalidades).

Page 29: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Processo de abstração

Atributos: Tamanho, cor, código, tecido, etc.

Funcionalidades: Proteger, esconder, padroniza

Page 30: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Processo de abstração

Atributos: saldos, limite, juros, vencimento.

Funcionalidades: débito, crédito, consulta saldo.

Page 31: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Modelo OMT• Object Modeling Technique, proposto por

Rumbaugh.• Introduz uma representação diagramática para este

modelo.• OMT define dois tipos de diagramas de objetos:

diagrama de classe e de instâncias.• Um diagrama de classe é um esquema que descreve

as muitas possíveis instâncias de dados.• Um diagrama de instância descreve como um

conjunto particular de objetos está relacionado.

Page 32: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Modelo OMT

Page 33: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Ligações e associações• Mecanismo para estabelecer relacionamentos

entre objetos e classes.• Uma associação é representada como uma linha

conectando dois objetos.• Nome de associações são usualmente

representado em itálico

Page 34: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Ligações e associações• Alguns atributos podem dizer respeito a

associações, e não a classe.

Page 35: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Agregação• Uma agregação é um relacionamento do tipo “uma parte

de”, nos quais objetos representando os componentes de alguma coisa são associados com objetos representando uma montante.

• Agregação transitiva: se A é parte de B e B é parte de C, então A é parte de C.

• Anti-simétrica: se A é parte de B, então B não é parte de A.

Page 36: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Generalização e Herança• Generalização: é o relacionamento entre uma

classe e um ou mais versões refinadas desta classe.• A classe refinada é chamada de super classe ou

classe base.• A tributos e operações comuns a um grupo de

classes derivadas são colocadas como atributos e operações da classe base, sendo compartilhados por cada classe derivada.

• A classe derivada herda as características de sua classe base.

Page 37: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Generalização e Herança

Page 38: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Compilar, linkar, debugar e profiler• Um programa: Composto por um ou mais arquivos

encadeados. Um arquivo é composto por um conjunto de instruções em programa.

• Pré-processamento: É a primeira fase da compilação, verifica as instruções de compilação passadas como o sinal #; Primeiro são incluídos os arquivos externos, depois são processadas as macros. O resultado é uma sequencia de símbolos que chamamos de unidade de tradução.

• Compilador: encontra os erros de sintaxe do programa e realiza a tradução do código em linguagem de máquina. Depois de compilado o programa passa a tar um arquivo *.obj ou *.o no Unix/Linux.

Page 39: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Compilar, linkar, debugar e profiler• Linker: Transforma um ou mais arquivo *.obj (*.o)

em um arquivo executável. Os arquivos que serão unidos são definidos em um arquivo de projeto ou em um arquivo makefile. Depois de linkados tem um arquivo executável *.exe no Windows, a.out no Linux.

• Debuber: é um programa que ajuda o programador a encontrar os erros de programação.

• Profiler: programa que ajuda a identificar os pontos do programa que consomem mais tempo (onde o programa esta sendo lento).

Page 40: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Extensões usuais dos arquivos

Situação Windows Unix/Linux MacAntes de compilar nome.h/nome.cpp nome.h/nome.cpp nome.h/nome.cpp

Depois de compilar nome.obj nome.o nome.o

Depois de linkar nome.exe nome Nome

Layout de um programa• Arquivo de cabeçalho (*.h)• Arquivo de implementação (*.cpp)

Page 41: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Diferença nas nomenclaturas da POO e de C++

Nomenclaturas POO Nomenclaturas C++Objeto ObjetoClasse Classe

Método Função/MétodoAtributo Atributo, variável

Mensagem Chamada de funçãoSubclasse Classe derivada

Superclasse Classe baseHereditariedade Derivação

Page 42: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe• Modela objetos que tem atributos• E comportamentos ou operações que são

funções.• Utiliza class para construir uma fábrica de

objetos.

Page 43: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe

Page 44: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Primeiro programa orientado a objeto

Page 45: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Primeiro programa orientado a objeto

Page 46: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Primeiro programa orientado a objeto

Page 47: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Workspace code::Blocks 12.11

Page 48: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Outras classes

Page 49: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Outras classes

Page 50: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos de objeto

Page 51: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos de objeto

Page 52: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe e funções membro

Page 53: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe e funções membro

Page 54: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Exercício• Crie uma função em uma classe que calcule o

produto matricial. O usuário deve entrar com o tamanho da matriz e os elementos da matriz.

• E crie uma possibilidade dos elementos da matriz serem geradas aleatoriamente entre 1 e 10.

• Entre com uma matriz no mínimo 900x900 (problema). Resolva o problema de inicialização da matriz com ponteiro para ponteiro.

Page 55: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atividade• Modifique o código a seguir que foi escrito

utilizando struct para uma codificação utilizando classes.

• Otimize o código-fonte.• Utilize ponteiros na criação dos objetos.

Page 56: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

(4, 11)

(2, 7)(6, 5)

(2, 0)

((8, 3)

(10, 9)

Page 57: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos de classe (estáticos)• Existem dois tipos de atributos dentro de uma

classe:Atributos de objetosAtributos da classe

• Atributos da classe: coletivos, é armazenado dentro da classe.

• O objetivo é possibilitar o compartilhamento do mesmo por todos os objetos criados.

Page 58: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos de classe (estáticos)

Page 59: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Exemplo classe hora

Page 60: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe

Page 61: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma
Page 62: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classes e estrutura

Page 63: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classes e estrutura

Page 64: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos const

Page 65: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos const

Page 66: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Atributos com mutable• Se uma classe tem um método membro const o

mesmo não pode alterara os atributos da classe.• Uma forma de contornar isto é definir o atributo

como mutable (poder mudar).

Page 67: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Construtores e destrutores• Funções que inicializam uma classe.• Tem o mesmo nome da classe.• Destrutores realizam a operação inversa.• São invocadas quando um objeto está para

morre.• Destrutor tem o mesmo nome da classe porém

com um til (~) como prefixo.

Page 68: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Construtores e destrutores• Quando você cria um objeto a sequencia da

construção do objeto é dada por:Solicitação de memória para o SO.Criação dos atributos do objeto.Execução do construtor da classe.

• Se for criada uma matriz de objetos a sequência da criação é obj[0], obj[1], ..., obj[n].

• A sequencia da destruição é obj[n], obj[n-1], ..., obj[0].

Page 69: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Inicialização dos atributos da classe nos construtores• Protótipo:

Page 70: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Inicialização dos atributos da classe nos construtores• Observe que ao inicializar o atributo no

construtor o mesmo é inicializado como uma cópia do valor passado, o que é mais rápido do que atribuir um valor ao atributo dentro do construtor.

Page 71: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe (parâmetros: cópia, referência e ponteiro)

Page 72: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe (parâmetros: cópia, referência e ponteiro)

Page 73: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe (parâmetros: cópia, referência e ponteiro)

Page 74: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe (parâmetros: cópia, referência e ponteiro)

Page 75: Programação Avançada C++ - ncdd.com.br+/slide10.pdf · Estruturas • Os tipos básicos (int, char, ... formulação inicial foi em 1960. Porém, ... utilizando struct para uma

Classe (parâmetros: cópia, referência e ponteiro)