sonst/newhdl4.cpp

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


// Headerdatei für den New-Handler
#include <new>

// Standard-Headerdateien
#include <iostream>

// Vorwärtsdeklaration
static void eigenerNewHandler();

// Reserve-Speicherplatz
static char* reserveSpeicherplatz;

void initNewHandler ()
{
    // je nach Bedarf Speicherplatz allokieren
    reserveSpeicherplatz = new char[100000];

    // New-Handler installieren
    std::set_new_handler(&eigenerNewHandler);
}

static void eigenerNewHandler ()
{
    // Reserve-Speicherplatz freigeben
    delete [] reserveSpeicherplatz;

    // Fehlermeldung auf Standard-Fehlerkanal ausgeben
    std::cerr << "Speicherplatz alle (Restspeicher freigegeben)"
              << std::endl;

    // entsprechende Exception auslösen
    throw std::bad_alloc();
}