#include <e32base.h>
class CBase |
Public Member Functions | |
---|---|
CBase() | |
virtual | ~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 | |
---|---|
virtual IMPORT_C TInt | Extension_(TUint, TAny *&, TAny *) |
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.
See also: CleanupStack
IMPORT_C | ~CBase | ( | ) | [virtual] |
Virtual destructor.
Enables any derived object to be deleted through a CBase* pointer.
IMPORT_C void | Delete | ( | CBase * | aPtr | ) | [static] |
Deletes the specified object.
Parameter | Description |
---|---|
aPtr | Pointer to the CBase derived object to be deleted. |
Initialises the object to binary zeroes.
Parameter | Description |
---|---|
aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
aBase | Indicates a base address which is returned as the object's address. |
Returns: A pointer to the base address.
Allocates the object from the heap and then initialises its contents to binary zeroes.
Parameter | Description |
---|---|
aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
Returns: A pointer to the allocated object; NULL if memory could not be allocated.
Allocates the object from the heap and then initialises its contents to binary zeroes.
Parameter | Description |
---|---|
aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
Returns: A pointer to the allocated object; the TLeave parameter indicates that the operation leaves if allocation fails with out-of-memory.
Allocates the object from the heap and then initialises its contents to binary zeroes.
Use of this overload is rare.
Parameter | Description |
---|---|
aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
aExtraSize | Indicates additional size beyond the end of the base class. |
Returns: A pointer to the allocated object; NULL if memory could not be allocated.
Allocates the object from the heap and then initialises its contents to binary zeroes.
Use of this overload is rare.
Parameter | Description |
---|---|
aSize | The size of the derived class. This parameter is specified implicitly by C++ in all circumstances in which a derived class is allocated. |
aExtraSize | Indicates additional size beyond the end of the base class. |
Returns: A pointer to the allocated object; the TLeave parameter indicates that the operation leaves if allocation fails with out-of-memory.