CBase
classesThe discussion of clean up so far has assumed objects to be cleaned up are derived from CBase
, with clean up by invoking delete
. Other classes need explicit cleanup support to be provided by the programmer.
The cleanup stack supports other types of object by two further overloaded versions of CleanupStack::PushL()
. You may push:
a TAny*
: such objects are destroyed by invoking User::Free()
on the pointer pushed — note that this is less powerful: it simply frees the memory, without calling the C++ destructor
a TCleanupItem
: an object of this type encapsulates a pointer to the object to be pushed, and a pointer to a function that provides cleanup for that object.
Some utility functions are provided that make construction of a suitable TCleanupItem
easy.