A note about noizex's recommendations:
Checking whether pointers are NULL before calling delete on them is unnecessary. Calling delete on a NULL pointer has no effect by definition. Although not initializing pointers to NULL in constructor(s) in current code is a problem.
Although initializing a pointer to NULL can make tracking down errors substantially simpler. For example, if I have a char* pointer that I assign the value "bob", then call delete on it, then print the value, it will *probably* print "bob", since that memory hasn't been reused yet. This is a live hand grenade of a bug waiting to go off, and hard as hell to find. If however, after deleting bob, you null it, trying to print it will cause your code to immediately explode, which is actually a very good thing.
It may not be required, but it can be good practice.
More to the point, the OP shouldn't be using naked pointers at all.
Just reread what I wrote and it sounds like I am disagreeing with mrjones. I am not, checking for null before delete is pointless.