Overloading The Operator new
Go Up to The new And delete Operators Index
::operator new() and
::operator new() can be overloaded. Each overloaded instance must have a unique signature. Therefore, multiple instances of a global allocation operator can coexist in a single program.
Class-specific memory allocation operators can also be overloaded. The operator new can be implemented to provide alternative free storage (heap) memory-management routines, or implemented to accept additional arguments. A user-defined operator new must return a void* and must have a
size_t as its first argument. To overload the new operators, use the following prototypes declared in the new.h header file.
void * operator new(size_t Type_size); // For Non-array void * operator new(size_t Type_size); // For arrays
The compiler provides
Type_size to the new operator. Any data type may be substituted for
Type_size except function names (although a pointer to function is permitted), class declarations, enumeration declarations, const, volatile.