Overloading di new e delete

  • 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);

© Ing. Stefano Salvi - All rights reserved