Quote:
Originariamente inviato da burohkr
il fatto e' che non conosco altri modi... e' la prima volta che lavoro
in una lista doppia..... senza dichiarare friend la classe lista non potevo accedere ai privati del nodo, cioe' nodo* seguente, e nodo* precedente..... Ho anche dei problemi con il distruttore di nodo..... l'ho lasciato vuoto, pero' come faccio a distruggere i puntatori del nodo? Grazie di tutto ciao
|
Scusami, ora capisco bene cosa intendevi dire.
In C++ una classe A e' friend della classe B quando A puo' accedere ai campi privati/protetti di B e si ottiene con la dicitura
"friend class A" all'interno della dichiarazione della classe B.
Nel tuo caso, supponendo che le due classi si chiamino "Nodo" e "Lista"
hai messo "friend class Lista" nella dichiarazione della classe Nodo ?
Ho il dubbio che tu abbia fatto il contrario.
Se ti e' possibile mostrare qualche spezzone di codice probabilmente ti potremo esseer di maggiore aiuto.
Il distruttore della classe Nodo dovrebbe solo distruggere il nodo a cui si riferisce, e lasciare che sia la classe lista a sistemare le relazioni
ad esempio con i tre nodi seguenti
A <--> B <--> C
se devi eliminare il nodo B prima aggiorni i nodi next di A e prev di C e poi fai un delete B che dovra' limitarsi a distruggere il nodo B