Destructor Function
When we allocate space out of the dynamic storage pool for a new class type, we need to find a way to return it, so that it is not "lost", i.e., we have a memory leak.
Since the user of our class should not be aware of what memory we use in the class, we shouldn't require the user to do anything special to see that the memory is not lost.
So returning dynamic memory should happen automatically.
This automatic action is accomplished by the destructor.
A destructor has nearly the same name as a constructor, except it is preceded by a "~".
A destructor is called automatically when a variable goes "out of scope".
We should never (or at least very, very rarely) call a destructor ourselves.
Destructor Example: simple_class_w_big_three.cpp