It is rarely necessary to invoke the somDestruct method explicitly This is because object uninitialization is normally done just before freeing an object's storage, and the mechanisms provided by SOMobjects for this purpose will automatically invoke somDestruct. For example, if an object were created using somNew or somNewNoInit, or by using a convenience macro provided by the C languag bindings, then the somFree method can be invoked on the object to delete the object. This automatically calls somDestruct before freeing storage.
C++ users can simply use the delete operator provided by the C++ bindings. This destructor calls somDestruct before the C++ delete operator frees the object's storage.
On the other hand, if an object is initially created by allocating memory in some special way and subsequently some somRenew methods are used, somFree (or C++ delete) is probably not appropriate. Thus, the somDestruct method should be explicitly called to uninitialize the object before freeing memory.