static ComponenteSpazio<T> SPACE [100];
did that do the trick?
typedeftypenameListaCur<T>::ComponenteSpazio<T> SPAZIO;
ComponenteSpazio is not nested inside ListaCur so that does not make sense, don't write ListaCur<T>:: if it is not a nested class.
Ok, so I have to create a nested class. I said
ComponenteSpazio <T> SPACE [MAXLUNG];
before the 'main' and errors were reduced from 34 to 14.
But if you do not create a separate header file for the class template ComponenteSpazio <T>, you not lost in abstraction?
//errors 15
[Error] expected template-id before 'ComponenteSpazio'
[Error] prototype for 'typename ListaCur<T>::ComponenteSpazio* ListaCur<T>::inizializza()' does not match any in class 'ListaCur<T>'
[Error] candidate is: static ComponenteSpazio<T>* ListaCur<T>::inizializza()
//errors 21
[Error] cannot declare member function 'static ComponenteSpazio<T>* ListaCur<T>::inizializza()' to have static linkage [-fpermissive]
ListaCur<T>::ComponenteSpazio<T>
Holy shit man, are you even listening?
Just remove that damned ListaCur<T>:: before ComponenteSpazio.
ComponenteSpazio is not declared inside of ListaCur so it doesn't make any sense to write it like this.