Sto studiando le classi e le funzioni modello.
Ho questo listato, preso pari passo dal libro di Savy "Da C++ a UML".
Ho evidenziato in grassetto la riga che il compilatore non accetta, restituendomi come errore il seguente.codice:#ifndef PILA_H #define PILA_H template <class E> class Record { private: E elem; Record<E>* prec; } typedef Record<E>* P; template <class E> class Pila { public: Pila() {p=0;} void top(E& e) const {e=p->elem;} bool empty() const {return (p==0);} bool full() const {return false;} void push(const E e); void pop(E& e); ~Pila(); private: P p; } #endif
Pila.h:11: error: template declaration of ‘typedef’
E' una notazione obsoleta o un semplice errore?
Ad ogni modo, come risolvo il problema? Cercando in rete trovo documentazione vaga e disordinata circa template e typedef, inoltre sul libro la cosa non viene approfondita a quanto pare.