Feedback

Operator new überladen

Sprache: C++

Beispiel zeigt wie ein eigener new operator für ein Objekt implmentiert werden kann und wie der globale new Operator überschreiben werden kann.
#include <iostream>
using namespace std;

class Y
{
public:
	static void * operator new(std::size_t size)
	{
		cout<<"new Y"<<endl;
		return 0;
	}
};

void* operator new(std::size_t size) throw(std::bad_alloc)
{
	cout<<"Globaler new Operator"<<endl;
	return 0;
}

void main()
{
    Y* y1 = new Y();
	int *x = new int[10];

	system("pause");
}
#include <iostream>
using namespace std;

class Y
{
public:
	static void * operator new(std::size_t size)
	{
		cout<<"new Y"<<endl;
		return 0;
	}
};

void* operator new(std::size_t size) throw(std::bad_alloc)
{
	cout<<"Globaler new Operator"<<endl;
	return 0;
}

void main()
{
    Y* y1 = new Y();
	int *x = new int[10];

	system("pause");
}