ciao a tutti, sto ancora implementando la classe cella per le liste, sono arrivato a creare il metodo per leggere un elemento della cella. in pratica la libreria viene creata, però nel main per provare il corretto funzionamento della classe mi dà errore alla linea 40 della classe cellap. inserisco il codice e l'errore:

cellap.h
codice:
#ifndef _CELLAP_H
#define _CELLAP_H

template<class T>
class Cellap
{
   public:
      typedef T tipoelem;
      
      Cellap();               //costruttore                                     //riga 10
      Cellap(tipoelem);       //costruttore
      
      tipoelem leggicella();  //metodo che fornisce l'elemento della cella
   private:
      Cellap *precedente;     //puntatore a cella precedente
      tipoelem elemento;      //elemento della cella
      Cellap *successivo;     //puntatore a cella successiva
};

#endif                                                                          //riga 20

template<class T>
Cellap<T>::Cellap()
{
   precedente = 0;
   new(tipoelem);
   successivo = 0;
}

template<class T>                                                               //riga 30
Cellap<T>::Cellap(tipoelem el)
{                                                                               
   precedente = 0;
   new(tipoelem);
   elemento = el;
   successivo = 0;
}

template<class T>
Cellap<T>::tipoelem Cellap<T>::leggicella()                                     //riga 40
{
   return (this->elemento);
}
main
codice:
#include "Cellap.h"
#include <iostream>

using namespace std;

int main()
{
    system("pause");
    Cellap<int> cella;
    
    system("pause");
    return 0;
}
come errore mi viene visualizzato il seguente messaggio:

40 C:\Dev-Cpp\ASD\Cellap.h expected constructor, destructor, or type conversion before "Cellap"

40 C:\Dev-Cpp\ASD\Cellap.h expected `;' before "Cellap"



dove sbaglio???