Classe template friend di classe template

di il
1 risposte

Classe template friend di classe template

Salve, sto scrivendo la classe Lista template, che funziona come la struttura list dell'stl.
Ho creato fondamentalmente due classi, la classe Lista e quella Elemento, di cui vi allego l'interfaccia (senza le varie implementazioni).
#include "Elemento.h"

template <class T>
class Lista
{
    private:
        Elemento<T>* testa;
        Elemento<T>* coda;

    public:
        Lista(Elemento<T>* = 0, Elemento<T>* = 0); 
        Lista(const Lista&);
        ~Lista();

        void pushTesta(T);
        void pushCoda(T);

        void delTesta();
        void delCoda();
};
template <class V>
class Elemento
{
    friend class Lista<V>; // <-- problema

    private:
        V valore;
        Elemento* succ;

    public:
        Elemento(V, Elemento* = 0); 
};
In virtù del funzionamento dei metodi della classe lista, mi è apparso ovvio che Elemento dovesse essere friend di Lista, ma il compilatore continua a darmi problemi (g++). In definitiva la domanda è questa: come faccio a dichiarare una template class friend di una template class, così che questa possa modificare i dati privati della prima?

Grazie mille per l'attenzione.

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte