In my current game project I am worried about memory leaks, and so I want to track objects being created and deleted in the heap.

i figured i could probably do this 2 ways.

The first way: I could use the preprocessor and do a #define on new and delete, overwriting their meanings.

That, however, is hackish and not good.

The better way would be to overload the new and delete operators. I have not, however, overloaded these two specific operators before, although I have overloaded pretty much about ever other operator in C++.

Basically ALL I want to do is have it do the EXACT same thing as the original new/delete keywords, but print out a message that an object is being created or deleted.

Tell me if you think this code would do the trick:

Code:
void *operator new ( site_t t )
{
	GloballyDeclaredDebugOutput << "object created...\n";
	return malloc( t );
}

void operator delete ( site_t t )
{
	GloballyDeclaredDebugOutput << "object destroyed...\n";
	free( t );
}