Basta cambiare modificatore: protected invece di private. Non vedo il problema.Originariamente inviato da pietrol83
...però poi non mi è stato possibile implementare i metodi private di cui si serve il metodo naturalmergesort() perchè non è possibile istanziare oggetti della classe lista...
Per le righe in rosso del metodo mergesort.
Ti sei accorto di usare pointer che puntano alla luna invece che a una istanza dinamica di lista?
(Che comunque non puoi avere visto che lista ha metodi puri?)
Cambiando il modificatore d'accesso e derivando la classe come avevi fatto prima avrai:
codice:template<class posizione, class tipoelem> void lista<posizione, tipoelem>::naturalmergesort() { int numerocatene; lista<posizione, tipoelem> *A, *B, *L; A = new listap<quel che è> ; B = new listap<quel che è> ; L = new listap<quel che è> ; do { A->crealista(); B->crealista(); distribuisci(*A, *B); numerocatene = 0; crealista(); merge(*A, *B, *L, &numerocatene); }while(numerocatene != 1); // eventuali delete di A, B, L }

Rispondi quotando