virtual ~CObject()
This function is the standard CObject destructor. If your derived class must free allocated memory or do other cleanup work, you must provide your own destructor. Because ~CObject is a virtual destructor, C++ ensures that CObject::~CObject is automatically called as part of the destructor of your class.
Note:
Your destructor should not throw exceptions or allocate objects.