A method for providing memory management for objects is described.
Specifically, techniques are described for providing common memory
management code to objects that are instances of different classes and
for releasing a memory management subtree that starts with a particular
object in the memory management tree. A memory management template
provides common pre-processor memory management code. A specialized
version of the memory management template is used to create a specialized
template subclass. When a memory management operator of an object that is
an instance of the specialized template subclass is invoked the common
memory management code in the specialized template is executed. Memory is
associated with each object in a hierarchical tree. Data for the memory
is maintained that reflects the hierarchical tree relationship between
the objects. A subtree and the associated memory can be released without
an application program tracking the relationships.