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
).