Much better

Head and Tail should be private or protected. protected if you want to derive classes.

If you derive publicly, make the destructor virtual.

The destructor's purpose is to make sure that no nodes remain. It should go through the list and delete every node.

The data parameters should be const references if you've learned about them. Both Pop and Poke have control paths that don't return values (if Head == NULL), they should do something. Return a default object or, better, throw an exception.