Linguagem de Programação C++

Documentos relacionados
Linguagem de Programação C++

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

saldo = novosaldo; } float getsaldo(void) return saldo; }

Linguagem de Programação C++

Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco

C com introdução a OO

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa

//conteúdo do arquivo ponto2dcirculo.h #ifndef PONTO2DCIRCULO_H #define PONTO2DCIRCULO_H class Ponto2D { public: Ponto2D (float, float); void setx

//conteúdo do arquivo pacote.h

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

Linguagens de Programação

Classes, Métodos e Propriedades

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores. Empacotador de Pré-processador. Empacotador de. Primeiro Exemplo Usando Classes em C++

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Namespaces, Classes e Métodos.

Construtores. Introdução

Linguagens de Programação

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira

Revisão de Programação em C++ Leandro Tonietto Estruturas de Dados em C++ Segurança da Informação

Ponteiros. Baseado nos slides do Prof. Mauro.

Programação Orientada a Objetos

Introdução a classes e objetos. Copyright 2006 by Pearson Education

Herança. BCC702-Programação de Computadores II Emiliana Mara Lopes Simões Universidade Federal de Ouro Preto abril 2010

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Aula 26: Estruturas heterogêneas

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes

Aula 20: Matrizes (Parte 2)

Programação científica C++

Orientação a Objetos. Programação em C++

Orientação a Objetos. Programação em C++

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Aula 1 Conceitos Básicos

Algoritmos e Estruturas de dados

Aula 24: Ponteiros e Alocação Dinâmica

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1

Aula 17: Funções (Parte III) e Introdução a Vetores

Classes II. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Baseado nos slides do Prof. Marco Antônio Carvalho

POO e C++: Herança e Polimorfismo

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Técnicas de Programação:

Trabalho Prático: Camada Física

Fundamentos de Programação

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Fundamentos de Programação 2

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Programação Orientada a Objetos

Orientação a Objetos. Programação em C++

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa

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

Orientação a Objetos. Programação em C++

Classes e Objetos. Sintaxe de classe em Java

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Programação por Objectos. Java

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15

Orientação a Objetos. Programação em C++

Curso de Programação C em Ambientes Linux Aula 05

Estrutura de dados 1. Ponteiros

Construtores e Especificadores de Acesso

Trabalho Linguagem e Programação de Compiladores

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Computação e Programação (2007/2008-1º Semestre)

Aula 27: Estruturas heterogêneas e alocação dinâmica

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Laboratório de programação II

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67

Linguagem de Programação I

Linguagem de Programação C++

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

Fundamentos de Programação

//conteúdo do arquivo pacote.h

Física Computacional 15 Templates

Física Computacional 7 Classes

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Programação científica C++

TAD: Tipo Abstrato de Dados (parte 2)

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Gilberto A. S. Segundo. 24 de agosto de 2011

Programação Orientada a Objetos Introdução a POO

Orientação a Objetos. Programação em C++

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras

Classes. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Baseado nos slides do Prof. Marco Antônio Carvalho

Aula 28: Arquivos de texto

Transcrição:

Exercício: Com base nos conceitos estudados, implemente uma classe que possibilite a instanciação de matrizes de números naturais, com qualquer quantidade de linhas e colunas. Especifique os membros de dados que julgar necessário, para que a interface da classe contemple a possibilidade de inicializar os elementos das matrizes, e imprimi-las com layout adequado. 189

O que acontecerá se um programa driver para a classe Matriz efetuasse a seguinte sequência de instruções: #include "Matriz.h" int main() char opcao; switch (opcao) case 1: } 197 } int l, c; cout << endl << "Entre com o numero de linhas da matriz: "; cin >> l; cout << endl << "Entre com o numero de colunas da matriz: "; cin >> c; Matriz m(l, c); }

Destrutor Para resolvermos este problema, existe, em cada classe, uma função membro especial, denominada Destrutor, que permitem providenciar a desalocação controlada dos objetos instanciados. Estas funções membros são nomeadas na forma ~<nome_da_classe> (nome da classe prefixado com til). 198 Exemplo: class Matriz public: ~Matriz(); }

199 Sendo assim, uma função-membro destrutor, poderá tomar as providências necessárias para a desalocação adequada do objeto receptor. Por exemplo: desalocar nodo a nodo uma lista encadeada ou um vetor alocado dinamicamente. É muito relevante frisar que um destrutor não recebe parâmetro e nem retorna um valor. Não sendo possível a especificação de nenhum tipo de retorno, nem mesmo o void. Cada classe possui apenas um destrutor. Uma classe sempre possui um destrutor, se o programador não fornecer um destrutor explicitamente, o compilador cria um destrutor vazio, que desempenha um papel importante em objetos criados por herança e composição. Observação: Construtoras e destrutoras não são herdadas!

Exercício: Agora, com base no conceito anterior adapte sua solução para o exercício do slide 189 sobre a classe Matriz. 200

Exercício: Com base no que vimos a respeito da representação do construtor de uma classe em um diagrama de classes em UML siga sua lógica e construa um diagrama de classe em UML que represente a classe Matriz. 203

204 Empacotador de pré-processador Creio que alguns de vocês já devem ter se perguntado sobre a possibilidade de inserir, por acidente, a definição de uma classe mais de uma vez em um programa, pois em um programa grande ocorrem muitas inclusões de arquivos cabeçalhos que por sua vez podem incluir outros arquivos cabeçalhos. Para evitar a ocorrência deste erro devemos utilizar o empacotador de pré-processador #ifndef. O qual representa se não definido. Sua sintaxe é: #ifndef <ROTULO> #define <ROTULO> #endif Para uma compreensão adequada analisaremos sua utilização na classe Matriz.

205 //conteúdo do arquivo Matriz.h #ifndef MATRIZ_H #define MATRIZ_H class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas(); public: Matriz(int, int); ~ Matriz(); void setelemento(int, int, int); int getelemento(int, int); void inicialize(); void imprima(); }; #endif

Exercício: Visando melhor fixar a utilização da alocação dinâmica de memória, explorando as funções-membros construtor e destrutor, explorar o princípio do ocultamento de implementação e demonstrar as vantagens na manutenibilidade de sistemas gerados com a utilização da OO, adapte a solução do exercício do slide 189 sobre a classe Matriz. Faça com que este armazene os elementos da matriz através de um membro de dados int ** ao invés de int * ou vise e versa para quem gerou inicialmente sua solução com int **. Utilize o empacotador de pré-processador. 206