The destructor is there to free memory you newd in the constructor, it doesn't free itself (that is what delete does). Btw, calling delete inside the constructor on this will just call the destructor again, and you will probably get a stack overflow.
You can't delete "this"... you don't need to anyway.
When you use new, at some point you need to use delete on that thing you used new on. You should also be careful with your pointers and check to see that they actually point to something before trying to delete.
Temporary variable: If you mess with memory yourself, then you have to unmess it yourself.