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 Aula2.zip.
lista_de_telefonema,
constituído pelos ficheiros
lista_de_telefonema.H, lista_de_telefonema_impl.H e
lista_de_telefonema.C ,
encontra uma versão incompleta da classe
ListaDeTelefonema. Esta classe representa uma lista cujos itens
pertencem à classe Telefonema (disponibilizada no módulo físico telefonema,
com ficheiros
telefonema.H,
telefonema_impl.H e telefonema.C que se encontram em
~/POO/Aula2).1.a) Qual o objectivo da classe Iterador, embutida na classe
ListaDeTelefonema?
1.b) Porque se declara a classe Iterador como classe amiga de
ListaDeTelefonema?
1.c) Porque razão existem ambos os métodos Item const&
ListaDeTelefonema::frente()
const e Item& ListaDeTelefonema::frente()?
1.d) Qual o interesse da instrução typedef Telefonema Item?
Que
alterações seriam necessárias para desenvolver a classe
ListaDeAluno, representando listas de itens do tipo Aluno
(ver classe implementada na Aula 1).
1.e) Complete os métodos e rotinas a seguir indicados (por ordem):
void ListaDeTelefonema::remove(Iterador& iterador);
Iterador& ListaDeTelefonema::Iterador::operator++();
duracaoDosTelefonemasPara(std::string const& numero, ListaDeTelefonema&
lista_de_telefonemas);
do ficheiro
duracao_dos_telefonemas.C.
void ListaDeTelefonema::poeAtras(Item const& novo_item);
void ListaDeTelefonema::tiraDaFrente(); main() de teste do módulo lista_de_telefonema.
main() que se encontra no ficheiro
duracao_dos_telefonemas.C. Em qualquer dos casos pode recorrer ao ficheiro de construção fornecido (Makefile).