[ create a new paste ] login | about

Link: http://codepad.org/kd2xzcnB    [ raw code | output | fork ]

C++, pasted on Nov 10:
#include <cstddef>
#include <iostream>

struct widget
{
	static void *operator new (std::size_t size)
	{
		std::cout << "widget::operator new (" << size << ")" << std::endl;

		return ::operator new (size);
	}

	static void operator delete (void *addr, std::size_t size)
	{
		std::cout << "widget::operator delete (" << size << ")" << std::endl;

		::operator delete (addr);
	}

	static void *operator new [] (std::size_t size)
	{
		std::cout << "widget::operator new [] (" << size << ")" << std::endl;

		return ::operator new [] (size);
	}

	static void operator delete [] (void *addr, std::size_t size)
	{
		std::cout << "widget::operator delete [] (" << size << ")" << std::endl;

		::operator delete [] (addr);
	}

	widget()
	{
		std::cout << "widget()" << std::endl;
	}

	~widget()
	{
		std::cout << "~widget()" << std::endl;
	}

	char padding[10];
};

int main(void)
{
	widget *p;

	p = new widget;

	delete p;

	p = new widget [3];

	delete [] p;

	return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
widget::operator new (10)
widget()
~widget()
widget::operator delete (10)
widget::operator new [] (34)
widget()
widget()
widget()
~widget()
~widget()
~widget()
widget::operator delete [] (34)


Create a new paste based on this one


Comments: