CObject::operator new

void* operator new( size_t nSize );
throw( CMemoryException );

void* operator new( size_t nSize, LPCSTR lpszFileName, int nLine );
throw( CMemoryException );

Remarks

For the Release version of the library, operator new performs an optimal memory allocation in a manner similar to malloc. In the Debug version, operator new participates in an allocation-monitoring scheme designed to detect memory leaks.

If you use the code line

#define new DEBUG_NEW

before any of your implementations in a .CPP file, then the second version of new will be used, storing the filename and line number in the allocated block for later reporting. You do not have to worry about supplying the extra parameters; a macro takes care of that for you.

Even if you do not use DEBUG_NEW in Debug mode, you still get leak detection, but without the source-file line-number reporting described above.

Note   If you override this operator, you must also override delete. Do not use the standard library _new_handler function.

Example

See CObList::CObList for a listing of the CAge class used in the CObject examples.

void* CAge::operator new(size_t nSize)
{
   return malloc(nSize);
}

void* CAge::operator new(size_t nSize, LPCSTR lpszFileName, int nLine)
{
   return malloc(nSize);
}

CObject OverviewClass MembersHierarchy Chart

See Also   CObject::operator delete