Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
// mögliche Implementierung von Operator new
void* operator new (std::size_t size)
{
void* p; // Zeiger für neuen Speicher
// solange es nicht klappt, neuen Speicher zu bekommen,
// New-Handler aufrufen oder Ausnahme auslösen
while ((p = holSpeicher(size)) == 0) {
// kein ausreichender Speicherplatz verfügbar
if (MyNewHandler != 0) {
// New-Handler aufrufen
(*myNewHandler)();
}
else {
// Ausnahme auslösen
throw std::bad_alloc();
}
}
// OK, neuen Speicherplatz zurückliefern
return p;
}