Una classe nested è una classe definita all'interno di un'altra classe.
Dal momento che nodopila è definita esternamente a pilavet, il tuo typedef è sbagliato.codice:class Qualcosa { class Dato { }; };
E' sufficiente:
Poi, manca un ; alla fine di pilavet e l'#endif andrebbe spostato alla fine del file dal momento che anche le funzioni sono parte dell'header file pilavet.hcodice:typedef nodopila<tipoelem> nodo;