class CBase |
Container Base Class
Base class for all classes to be instantiated on the heap.
By convention, all classes derived from CBase have a name beginning with the letter 'C'.
The class has two important features:
1. A virtual destructor that allows instances of derived classes to be destroyed and properly cleaned up through a CBase* pointer. All CBase derived objects can be pushed, as CBase* pointers, onto the cleanup stack, and destroyed through a call to CleanupStack::PopAndDestroy().
2. Initialisation of the CBase derived object to binary zeroes through a specific CBase::operator new() - this means that members, whose initial value should be zero, do not have to be initialised in the constructor. This allows safe destruction of a partially-constructed object.
Note that using C++ arrays of CBase-derived types is not recommended, as objects in the array will not be zero-initialised (as there is no operator new[] member). You should use an array class such as RPointerArray instead for arrays of CBase-derived types.
Public Member Functions | |
---|---|
CBase() | |
~CBase() | |
IMPORT_C void | Delete(CBase *) |
TAny * | operator new(TUint, TAny *) |
TAny * | operator new(TUint) |
TAny * | operator new(TUint, TLeave) |
TAny * | operator new(TUint, TUint) |
TAny * | operator new(TUint, TLeave, TUint) |
Protected Member Functions | |
---|---|
IMPORT_C TInt | Extension_(TUint, TAny *&, TAny *) |
Private Member Functions | |
---|---|
CBase(const CBase &) | |
CBase & | operator=(const CBase &) |
IMPORT_C TInt | Extension_ | ( | TUint | aExtensionId, |
TAny *& | a0, | |||
TAny * | a1 | |||
) | [protected, virtual] |
TAny * | operator new | ( | TUint | aSize, |
TAny * | aBase | |||
) | [inline] |
Initialises the object to binary zeroes.
A pointer to the base address.
TAny * | operator new | ( | TUint | aSize | ) | [inline] |
Allocates the object from the heap and then initialises its contents to binary zeroes.
A pointer to the allocated object; NULL if memory could not be allocated.
TUint aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
TAny * | operator new | ( | TUint | aSize, |
TLeave | ||||
) | [inline] |
Allocates the object from the heap and then initialises its contents to binary zeroes.
A pointer to the allocated object; the TLeave parameter indicates that the operation leaves if allocation fails with out-of-memory.
TAny * | operator new | ( | TUint | aSize, |
TUint | aExtraSize | |||
) | [inline] |
Allocates the object from the heap and then initialises its contents to binary zeroes.
Use of this overload is rare.
A pointer to the allocated object; NULL if memory could not be allocated.
TAny * | operator new | ( | TUint | aSize, |
TLeave | , | |||
TUint | aExtraSize | |||
) | [inline] |
Allocates the object from the heap and then initialises its contents to binary zeroes.
Use of this overload is rare.
A pointer to the allocated object; the TLeave parameter indicates that the operation leaves if allocation fails with out-of-memory.