Leggendo il codice, mi sembra che tu abbia un po' di confusione sulle "responsabilità" della classe LinkedList... la classe LinkedList<T> è una classe generica (template), che deve occuparsi semplicemente di contenere oggetti di un generico tipo T; perché fa riferimento a Persona o a Contatto? L'unico tipo "esterno" a cui deve fare riferimento LinkedList è T, ovvero l'argomento template.
In altre parole: il punto dell'usare i template in questo caso è scrivere un contenitore che possa funzionare con qualunque tipo, senza rimanere legati a Persona o Contatto o quello che vuoi. Poi nel main o dove vuoi scriverai LinkedList<Contatto>, e ci potrai inserire dentro oggetti di tipo Contatto, che costituiranno la tua rubrica.
Poi: la classe LinkedList ha un'interfaccia che non ha senso. Come può essere che aggiungi ed elimina siano funzioni che non prendono alcun argomento? Da dove pescano l'elemento da aggiungere/eliminare? Un'interfaccia più sensata sarebbe del tipo:
Anche sulla classe Persona, non capisco perché hai i metodi add_nome e compagnia: o lasci i membri pubblici (e da fuori ci scrivi dentro quel che ti pare), oppure metti i membri privati e scrivi i metodi getter e setter (string get_nome()/void set_nome(string nome)). Dei metodi come add_nome (che peraltro non riceve alcun parametro?codice:void aggiungi(T elemento); void elimina(T elemento); // su questo ci sarebbe da discutere, comunque...) per una struttura contenente un numero fissato di record non hanno senso.
Io fossi in te ripartirei da capo, riordinandomi un po' le idee su cosa deve fare ciascuna classe, e cercando di capire quale dovrebbe essere l'interfaccia che dovrebbero esporre; se vuoi una mano in questo senso potrebbe essere utile avere la consegna completa del problema, visto che ci sono diverse cose che non mi tornano già così (come ci si aspetta che la print() faccia qualcosa di sensato su un tipo generico? come si dovrebbe scorrere una linked list con un'interfaccia di questo genere?).

) per una struttura contenente un numero fissato di record non hanno senso.
Rispondi quotando