- Un metodo più sofisticato per gestire gli errori di esaurimento dell'heap è
quello di sovraccaricare gli operatori new delle classi
- L'operatore new riceve come unico parametro un intero (tipo size_t) che indica la dimensione
reale dell'oggetto (potrebbe essere una classe derivata, quindi di dimensione superiore)
- L'operatore new deve ritornare un puntatore (di tipo void *) ad un'area di memoria della
dimensione richiesta (o NULL se non ci riesce)
- Se necessario, si può anche ridefinire l'operatore delete, che non ha valore di
ritorno ed ha come parametro un puntatore (di tipo void *) all'area di memoria da liberare
- Gli operatori new e delete sono static
- Si possono anche sovraccaricare gli operatori standard di new e delete, dichiarandoli
rispettivamente:
void * ::new (size_t dim);
void ::delete (void *var);
|