#include <uobject.h>
Inheritance diagram for UObject::
Public Methods | |
virtual | ~UObject () |
Destructor. More... | |
void * | operator new (size_t size) |
Overrides for ICU4C C++ memory management. More... | |
void * | operator new[] (size_t size) |
void | operator delete (void *p) |
Overrides for ICU4C C++ memory management. More... | |
void | operator delete[] (void *p) |
virtual UClassID | getDynamicClassID () const=0 |
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. More... |
All other ICU C++ classes are derived from UObject (starting with ICU 2.2).
This is primarily to make it possible and simple to override the C++ memory management by adding new/delete operators to this base class.
To override ALL ICU memory management, including that from plain C code, replace the allocation functions declared in cmemory.h
UObject does not contain default implementations of virtual methods like getDynamicClassID to allow derived classes such as Format to declare these as pure virtual.
It is likely that a future ICU release will split UObject to separate out a new "more base" class for only the memory management customization, with UObject subclassing that new class and adding virtual methods for "boilerplate" functions. This will simplify the maintenance of ICU.
Definition at line 63 of file uobject.h.
|
Destructor.
|
|
|
Overrides for ICU4C C++ memory management. simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes
|
|
|
|
Overrides for ICU4C C++ memory management. simple, non-class types are allocated using the macros in common/cmemory.h (uprv_malloc(), uprv_free(), uprv_realloc()); they or something else could be used here to implement C++ new/delete for ICU4C C++ classes
|
|
|