Resolução da 2ª Aula Prática

1.  Ver Capítulo 10 das Folhas Teóricas.

1.a)  A classe iterador serve para referenciar itens em listas.  Instâncias suas são usadas para percorrer listas, indicar posições nas quais se pretendem inserir itens, etc.

1.b)  Porque a classe Iterador necessita de aceder aos itens da lista a que está associada, coisa que é proibida ao comum dos mortais.

1.c)  O primeiro é um inspector.  Só com ele é possível aceder ao item na frente de uma lista constante.  O segundo é um modificador, embora não directo.  I.e., permite a alteração da lista (nomeadamente do item na sua frente), embora não a altere directamente.  Através desta sobrecarga conseguimos o melhor de dois mundos.

1.d)  A utilidade do sinónimo Item é permitir escrever código mais genérico, que pode ser facilmente adaptado de forma a representar listas com outro tipo de itens.  As alterações a realizar seriam:

  1. typedef TelefonemaAluno Item;
  2. Substituir ListaDeTelefonema por ListaDeAluno.

1.e)  Ver lista_de_telefonema.H, lista_de_telefonema_impl.H, lista_de_telefonema.C, telefonema.H, telefonema_impl.H, telefonema.C, duracao_dos_telefonemas.C, Makefile e telefonemas.txt.

1.f)  Basta fazer make ou make -k.