Salve a tutti,
ho il seguente codice:
Ovvero dice che AlberiLD eredita da Albero, però deve passargli quei 3 parametri di template.codice:template < class T > class AlberiLD: public Albero< T,_nodo<T> *, AlberiLD >
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:
La mia superclasse invece è questa: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
Come vedete per i metodo insPrimoSottoAlbero ed insSottoAlbero ho bisogno di passargli il "tipoalbero" ovvero la classe albero stessa.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 posso aggiustare il template di prima per far si che tutto questo funzioni?
Vi ringrazio in anticipo,
Neptune.


Rispondi quotando