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