Ho una classe su cui sto sovraccaricando new e delete (questi recuperano e restituiscono memoria da e verso un pool di memoria). Ciò che mi frustra è che la classe su cui ho sovraccaricato ha ancora il suo distruttore chiamato prima che venga chiamata la funzione di sovraccarico dell'eliminazione. Come posso fermarlo?Arresto del distruttore chiamato
class Message
{
~Message() { ... }
void* operator new(std::size_t sz) { ... }
void operator delete(void* ptr) { ... }
};
EDIT:
Am ragione nel pensare che i membri della classe saranno distrutti, ma la memoria non saranno liberati dai distruttori; la funzione delete possiede questa responsabilità, nel qual caso posso impedire che la memoria venga deallocata?
RISULTATO: Penny caduto che l'assegnazione/deallocazione della memoria e la costruzione/distruzione sono elementi separati. Ora ho distruttori vuoti e sovraccarico nuovo/cancella.
Non so perché questo è frustrante; C++ è molto logico in questo senso. Lascia un distruttore vuoto se non ne hai bisogno per fare qualcosa. –