Salve a tutti,
ho il seguente codice:

codice:
template < class T >
class AlberiLD: public Albero< T,_nodo<T> *, AlberiLD >
Ovvero dice che AlberiLD eredita da Albero, però deve passargli quei 3 parametri di template.
Il problema è che gli da fastidio che gli passo come terzo parametro il nome della classe stessa, perchè quando lo ho aggiunto mi ha iniziato a dare questi erroi:

codice:
expected a type, got 'AlberiLD' AlberiLD.h	/Alberi N-ari line 13	C/C++ Problem


type/value mismatch at argument 3 in template parameter list for 'template<class T, class P, class A> class Albero'	AlberiLD.h	/Alberi N-ari	line 13	C/C++ Problem
La mia superclasse invece è questa:


codice:
#include <iostream>
#include <string>

using std::string;
using namespace std;

#include "class_nodo.h"

template < class T, class P, class A> class Albero
{

public:

	typedef T tipoelem;
	typedef P Nodo;
	typedef A tipoalbero;



  virtual void creaAlbero ()=0;
  virtual bool alberoVuoto ()=0;
  virtual void insRadice (Nodo)=0;
  virtual Nodo radice ()=0;
  virtual Nodo padre (Nodo)=0;
  virtual bool foglia (Nodo)=0;
  virtual Nodo primoFiglio (Nodo)=0;
  virtual bool ultimoFratello (Nodo)=0;
  virtual Nodo succFratello (Nodo)=0;
  virtual void insPrimoSottoAlbero (Nodo, tipoalbero &)=0;
  virtual void insSottoAlbero (Nodo, tipoalbero &)=0;
  virtual void cancSottoAlbero (Nodo)=0;

  virtual void scriviNodo (Nodo, tipoelem)=0;
  virtual tipoelem leggiNodo (Nodo)=0;


};
Come vedete per i metodo insPrimoSottoAlbero ed insSottoAlbero ho bisogno di passargli il "tipoalbero" ovvero la classe albero stessa.

Come posso aggiustare il template di prima per far si che tutto questo funzioni?

Vi ringrazio in anticipo,
Neptune.