Professional Documents
Culture Documents
Funo inline
O qualificador antes do tipo de retorno da funo na definio da funo diz ao compilador para gerar uma cpia daquela funo , para evitar uma chamada da funo. Overhead durante a execuo. Desvantagem que so geradas mltiplas cpias da funo no programa. Sempre que puder use o inline para funes pequenas.
Funo inline
Sobrecarga de funes
Alocando memria
typeName * pointer_name = new typeName; int * pn = new int;
Alocando memria
Liberando memria
Arranjos e apontadores
Retangulo box[5]; box[2].area(); Retangulo *p; p = □ p -> area();
Alocando Objetos
Retangulo *p; p = new Retangulo [6]; ... delete [] p;
Estruturas
Os tipos bsicos (int, char, double e void) representam um nico item de informao. A partir dos tipos bsicos, podese definir tipos complexos os quais permitiro agrupar um conjunto de variveis de tipos iguais (vetores e matrizes) ou diferentes (estruturas, classes e unies) 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 tambm podem conter funes que manipulam seus dados. Porm este enfoque ser visto apenas no captulo de Classes.
Estruturas
Estruturas
No exemplo anterior, foi criado uma estrutura para representar um produto e na sequncia foram instanciadas duas variveis do tipo produto de nome caneta e lpis.
Estruturas
Quando se declara uma estrutura, nenhuma rea de memria reservada. Simplesmente estamos informando ao compilador a criao de um novo tipo de dados. Uma estrutura um tipo definido pelo programador, portanto a definio de uma varivel desse novo tipo semelhante definio de variveis dos tipos bsicos: produto caneta; aluno aluno01; agencia Ag; Conta cValor; Conta cMatriz[10];
Estruturas
Estruturas
Estruturas
Array de estruturas
A declarao de um array de estruturas ocorre da mesma forma que uma varivel estrutura.
Array de estruturas
O acesso aos elementos de um array de estruturas feito no formato:
Exemplo:
Exerccio
Crie um array de estrutura chamado ALUNO que contem os seguintes elementos: cdigo, nome, dia matricula, ms matricula, ano matricula, nome do curso. O sistema deve ser capaz de cadastrar os alunos e apresentar a lista de arrays desta estrutura atravs de uma funo.
Abstrao
Significa concentrar-se no que um objeto e faz antes de se decidir como ele ser implementado. Compreender um sistema, concreto ou no, e criar um modelo documentado e padronizado que reflita seu comportamento. Processo de modelagem de sistema concreto ou no, extraindo do seu contexto os principais objetos e descrevendo-os por meio da discriminao de suas propriedades e funcionalidades.
Abstrao
Os objetos do sistema, so conceituais e suas caractersticas dividem-se em duas categorias:
Propriedades (atributos): descrevem o objeto, seus possveis estados e o papel que ele desempenha no sistema. Funcionalidades (mtodos): descrevem a ao 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).
Processo de abstrao
Atributos: Tamanho, cor, cdigo, tecido, etc. Funcionalidades: Proteger, esconder, padroniza
Processo de abstrao
Atributos: saldos, limite, juros, vencimento. Funcionalidades: dbito, crdito, consulta saldo.
Modelo OMT
Object Modeling Technique, proposto por Rumbaugh. Introduz uma representao diagramtica para este modelo. OMT define dois tipos de diagramas de objetos: diagrama de classe e de instncias. Um diagrama de classe um esquema que descreve as muitas possveis instncias de dados. Um diagrama de instncia descreve como um conjunto particular de objetos est relacionado.
Modelo OMT
Ligaes e associaes
Mecanismo para estabelecer relacionamentos entre objetos e classes. Uma associao representada como uma linha conectando dois objetos. Nome de associaes so usualmente representado em itlico
Ligaes e associaes
Alguns atributos podem dizer respeito a associaes, e no a classe.
Agregao
Uma agregao um relacionamento do tipo uma parte de, nos quais objetos representando os componentes de alguma coisa so associados com objetos representando uma montante.
Agregao transitiva: se A parte de B e B parte de C, ento A parte de C. Anti-simtrica: se A parte de B, ento B no parte de A.
Generalizao e Herana
Generalizao: o relacionamento entre uma classe e um ou mais verses refinadas desta classe. A classe refinada chamada de super classe ou classe base. A tributos e operaes comuns a um grupo de classes derivadas so colocadas como atributos e operaes da classe base, sendo compartilhados por cada classe derivada. A classe derivada herda as caractersticas de sua classe base.
Generalizao e Herana
Windows
nome.h/nome.cpp nome.obj nome.exe
Unix/Linux Mac
nome.h/nome.cpp nome.o nome nome.h/nome.cpp nome.o Nome
Classe
Modela objetos que tem atributos E comportamentos ou operaes que so funes. Utiliza class para construir uma fbrica de objetos.
Classe
Outras classes
Outras classes
Atributos de objeto
Atributos de objeto
Atributos da classe: coletivos, armazenado dentro da classe. O objetivo possibilitar o compartilhamento do mesmo por todos os objetos criados.
Classe
Classes e estrutura
Classes e estrutura
Atributos const
Atributos const
Construtores e destrutores
Funes que inicializam uma classe. Tem o mesmo nome da classe. Destrutores realizam a operao inversa. So invocadas quando um objeto est para morre. Destrutor tem o mesmo nome da classe porm com um til (~) como prefixo.
Construtores e destrutores
Quando voc cria um objeto a sequencia da construo do objeto dada por:
Solicitao de memria para o SO. Criao dos atributos do objeto. Execuo do construtor da classe.
Se for criada uma matriz de objetos a sequncia da criao obj[0], obj[1], ..., obj[n]. A sequencia da destruio obj[n], obj[n-1], ..., obj[0].