Struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; next função virtual pura 1º constructor 2º

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Resolvendo o Problema da Heterogeneidade
Advertisements

Classes C++ Class nome da classe { private: membros privados
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 04 Aquiles Burlamaqui UERN
Programação II Estruturas de Dados
Programação II Estruturas de Dados
List templates Vamos considerar a lista ligada (singly linked list) O objecto da classe slink O objecto da classe slink O objecto da classe slink NULL.
1. Classes 2. Membros estáticos 1.1. Palavra chave this
Vamos abordar o exemplo
INF Computação Gráfica
Listas Ligadas – Conceitos Avançados
Estrutura de Dados (Mapas)
Ponteiros em C.
LPG-I: Tipos Complexos - Estruturas
Orientação a Objetos Classes
Universidade Federal do Espírito Santo Programação II Estruturas Professora: Norminda Luiza.
Listas com Ponteiros Listas encadeadas Listas circulares.
Funções definidas pelo usuário STL oferece a possibilidade de que o usuário escreva seus próprios algoritmos para processar os elementos de coleções #include.
LISTAS “LINKADAS” No Mapeamento Seqüencial tem-se o problema de
Universidade de Brasília
Estruturas de Dados Heterogêneas (struct)
Armazenamento de Dados em Arquivos
Slides: Prof. João Fabro UTFPR - Curitiba
Armazenamento de Dados em Arquivos
Estruturas de Dados Heterogêneas (struct)
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Slides: Prof. João Fabro UTFPR - Curitiba
1 Aula 3 Listas e iteradores (cont.). 2003/2004 Programação Orientada para Objectos 2 ListaDeInt : interface class ListaDeInt { public: typedef int Item;
Aula 8 Polimorfismo.
1 Aula 7 Herança. 2003/2004 Programação Orientada para Objectos 2 Conceitos fundamentais: Herança Polimorfismo Ligação dinâmica.
Sobrecarga de nomes de rotinas Rotinas recursivas Invocação de rotinas
2002/2003 Programação Orientada para Objectos 1 Aula 3 Utilização de listas Melhorando a implementação das listas e iteradores Reflexão sobre interfaces.
A linguagem C#.
Introdução à linguagem de programação JAVA5
exercícios listas encadeadas
Introdução a Estruturas de Dados Avançadas Utilizando Linguagem C
Departamento de Estatística e Informática
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
1 Tipos avançados (versão C/C++) Em C/C++ existe a possibilidade de criar novos tipos. Em C esta possibilidade só pode ser materializada com estruturas.
PROGRAMAÇÃO ESTRUTURADA II
Estruturas de Dados com Jogos
Metaprogramação – API Reflection da linguagem Java
Construção de Algoritmos AULA 04
Linguagem de Programação II
Revisão de Orientação a Objetos e C++
Paradigmas e Ferramentas de Desenvolvimento de Software – Revisão da linguagem C++ Lúbia Vinhas DPI - INPE.
+ Curso de C/C++ Aula 8 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
Estudo de Caso: um editor de documentos
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Programação orientada a objectos em C++
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Sobrecarga de métodos  Definição de métodos visibilidade tipo de retorno nome do método.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Tipos de dados inteiro caracter real logico
Estruturas Revisando: tipos de dados simples
Exercícios Laboratório. Inicio Escreva (“Olá Mundo!”) Fim static void main (string[] args) { Console.WriteLine (“Olá Mundo!”); }
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Linguagem de Programação
DSC/CCT/UFCG {joseana, Carga Horária: 60 horas Prof.: José Eustáquio Rangel de Queiroz
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Fundamentos de Programação 1 Slides 11 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “ Struct, Union, Enum, Typedef ”
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Orientação a Objetos - Programação em C++ Slides 11: Herança et al. (Funções Virtuais, Polimorfismo, Herança Múltipla, Funções Virtuais Puras e Classes.
IDENTIFICAÇÃO DOS RELACIONAMENTOS Nesta atividade devem ser definidos os relacionamentos entre as classes Podem ser representados pela: – associação, –
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ PAE: Pedro Shiguihara Professor: Dilvan Moreira.
Orientação a Objetos - Programação em C++
Introdução a Programação
Orientação a Objetos Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Programação FUNCIONAL com Scala
Transcrição da apresentação:

struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; next função virtual pura 1º constructor 2º constructor slink sl; next = 0 não existe slink sl1(p); next = p slink sl; slink sl1(&sl); next = 0 não existe sl sl1 sl sl1 next = &sl next

class slist_base { slink* last;// last->next é a cabeça da lista public: slink* ret(); void insert(slink* a);// incluir na cabeça da lista slist_base(){ last = 0;} slist_base(slink* a) { last = a->next = a;} }; struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; next slist_base sb; next sl slink sl; sb insert(&sl); next sl

class slist_base { slink* last;// last->next é a cabeça da lista int number; public: slink* ret(); void insert(slink* a);// incluir na cabeça da lista slist_base(){ last = 0; number = 0; } slist_base(slink* a) { last = a->next = a; number = 1; } }; struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; class person : public slink {int idade; char *nome; public: person(int i, char* n){ idade = i; nome = new char[10]; strcpy(nome,n); } virtual ~person(){ delete [] nome; } void print_me() { cout << "idade - " << idade << "; nome - " << nome << endl; } }; class aluno : public person {long turma; public: aluno(int i, char* n, long t) : turma(t), person(i,n) {} virtual ~aluno() {} void print_me() { cout << "turma - " << turma << "; "; person::print_me(); } };

int main(int argc, char* argv[]) {slink* terminate; person p(25, "Paulo"), p1(21, "Ana"); aluno p2(22, "Nuno", ); slist_base sb; sb.insert(&p); sb.insert(&p1); sb.insert(&p2); while ((terminate = sb.ret()) != 0) terminate->print_me(); return 0; }

class slist_base { slink* last;// last->next é a cabeça da lista int number; public: slink* ret(); void insert(slink* a);// incluir na cabeça da lista slist_base(){ last = 0; number = 0; } slist_base(slink* a) { last = a->next = a; number = 1; } }; struct slink { slink* next; slink() { next=0; } slink(slink* p) { next=p; } virtual void print_me() = 0; }; class person : public slink {int idade; char *nome; public: person(int i, char* n){ idade = i; nome = new char[10]; strcpy(nome,n); } virtual ~person(){ delete [] nome; } void print_me() { cout << "idade - " << idade << "; nome - " << nome << endl; } }; class aluno : public person {long turma; public: aluno(int i, char* n, long t) : turma(t), person(i,n) {} virtual ~aluno() {} void print_me() { cout << "turma - " << turma << "; "; person::print_me(); } }; trabalhador

class trabalhador : public person {int salario; public: trabalhador(int i, char *n, int s) : salario(s), person(i,n) {} virtual ~trabalhador() {}; void print_me() { cout << "salario - " << salario << "; "; person::print_me(); } }; int main(int argc, char* argv[]) {slink* terminate; person p(25, "Paulo"), p1(21, "Ana"); aluno p2(22, "Nuno", ); trabalhador p3(30, "Ricardo", 1000); slist_base sb; sb.insert(&p); sb.insert(&p1); sb.insert(&p2); sb.insert(&p3); while ((terminate = sb.ret()) != 0) terminate->print_me(); return 0; }