dicetemi una cosa

list.h
Spoilertypedef int T;
class record
{
public:
T val;
record* next;
record* prev;
record (T);
};
class lista
{
record* top;
record* bottom;
lista ();
void push_top (record*);
};
list.cpp
Spoiler//CLASS RECORD------------------------------------------------
record :: record (T input)
{
val = input;
next = NULL;
prev = NULL;
}
//CLASS LISTA--------------------------------------------------
lista :: lista ()
{
top = NULL;
bottom = NULL;
}
void lista :: push_top (record* to_insert)
{
to_insert->prev = top;
top->next = to_insert;
return;
}
in pratic voglio creare delle liste con record di tipo generico...però non riesco a riscerverlo con il template.......come potete vedere ho provato a mettere un typedef giusto per capire se sbaglio nella sintassi da usare per i template e così è.........allora ricapitolando
template <class T> classe Esempio
{
T membro;
};
class AltroEsempio
{
Esempio <T>* pEsempio;
}
è giusto?