Una classe nested è una classe definita all'interno di un'altra classe.
codice:
class Qualcosa {

    class Dato {

    };
};
Dal momento che nodopila è definita esternamente a pilavet, il tuo typedef è sbagliato.
E' sufficiente:
codice:
typedef nodopila<tipoelem> nodo;
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.h