Os alunos no final desta aula deverão conhecer:
Deverão também ser capazes de:
Caso os alunos sintam que os objectivos não foram atingidos na totalidade deverão concluir/repetir os exercícios desta aula autonomamente e ou recorrer aos horários de dúvidas.
Os ficheiros relativos a esta aula estão disponíveis no arquivo Aula7.zip.
1. Construa uma classe FilaDeInt por herança privada da
classe ListaDeInt definida no módulo físico lista_de_int
(ficheiros lista_de_int.H, lista_de_int_impl.H
e lista_de_int.C) no directório ~/POO/Aula7.
2. Seja a classe Filme no módulo
físico filme
constituído pelos ficheiros filme.H,
filme_impl.H
e
filme.C bem como o programa de
teste teste_de_filme.C
e o ficheiro filmes.txt ,
que se podem encontrar no directório ~/POO/Aula7/.
2.a)
Construa as classes FilmeEstrangeiro e EdicaoDoRealizador
por herança pública da classe Filme.
A classe FilmeEstrangeiro
deve ter informação sobre o país de origem e a língua em que o filme é
falado.
A classe EdicaoDoRealizador deve ter informação (uma string)
sobre as alterações feitas ao original.
Ambas as classes devem ter os
métodos carregaDe() e mostraEm() bem como um construtor a
partir de um canal de entrada.
2.b) Altere o ficheiro teste_de_filme.C de modo a que
construa, carregue e mostre não apenas instâncias da classe Filme,
mas também instâncias das classes FilmeEstrangeiro e EdicaoDoRealizador. Cada classe derivada apenas carrega
e mostra a sua própria informação específica,
delegando sempre que necessário nos procedimentos da classe base
para carregar e mostrar a informação genérica relativa
a um Filme. Altere o ficheiro filmes.txt de modo
a conter os três tipos de filmes.
2.c) Altere o programa de teste de modo a criar uma lista de ponteiros
para a classe Filme e nela inserir ponteiros para os três tipos de
filmes definidos. Depois faça um ciclo que percorra a lista mostrando os
filmes no ecrã. Que conclui?
2.d) Suponha que pretende preencher a lista de ponteiros com filmes
lidos a partir do ficheiro filmes.txt, que nesta fase já deve
conter os três tipos de filmes. Como o fazer? Será que precisa de
alterar o ficheiro filmes.txt? Como?
3. Trabalhe no Trabalho Final.