Ok, allora la cosa è piuttosto semplice.
La classe DblLinked, come previsto, non deve entrare nel merito, ma semplicemente fornire uno storage generico per il tipo T; la aggiungi andrà ad aggiungere un nodo in coda (o in testa) alla lista, copiandoci dentro il valore che ti viene passato (nota che qui `contatto` non è inteso come tipo, ma semplicemente come nome del parametro della aggiungi).
Analogamente, nella rimuovi andrai a cercare un nodo il cui elemento risulta uguale a quello che ti viene passato ed eliminerai il nodo corrispondente.
Nella stampa poi userai l'operatore << per stampare tutti gli elementi (scorri la lista e per ciascun elemento fai std::cout<<nodo.elemento).
Boh, per ora non starei a preoccuparmene, il testo del problema non mi sembra che menzioni nulla del genere, e una cosa del genere richiede un po' più di "magia" di quanto credo sappiate usare.[/I]A questo punto mi sta venendo il dubbio anche su come ho creato la struttura per la persona, io l'avevo fatta così:
[/FONT][FONT=arial]codice:class Persona { public: char nome[30]; char cognome[30]; char tel[30]; void add_nome( ); void add_cognome( ); void add_telefono( ); };
ma il prof, tramite email, mi ha detto che si aspettava una "chiave" formata da nome e cognome, e il restante dei dati formati dalla coppia attributo-valore, in modo tale che quando stampo viene fuori:
Mario Rossi
cellulare - 123456
cellulare2 - 987654
indirizzo - blablabla...
etc etc...
Per il resto, per Persona io mi aspetterei una cosa del tipo:
(ammesso che possiate usare std::string, in caso contrario dovranno essere degli array di char).codice:struct Persona { std::string nome; std::string cognome; std::string indirizzo; std::string telefono1; std::string telefono2; };
Le altre due cose importanti da implementare a quel punto sono:
- l'overload dell'operator== (altrimenti la lista non può sapere nella remove quando due elementi sono uguali);
- l'overload dell'operator<< (altrimenti la lista non può stampare gli elementi nella stampa()).
Le due cose ti risultano più o meno note?


Rispondi quotando