Überladen des Operators delete

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Die Operatoren New und Delete - Index

Die globalen Operatoren ::operator delete() und ::operator delete[]() können nicht überladen werden. Sie können jedoch die Standardversion dieser Operatoren durch Ihre eigene Implementierung ersetzen. Im Programm kann von jedem dieser Operatoren nur eine einzige Instanz existieren.

Ein anwenderdefinierter delete-Operator muss den Typ void zurückliefern und sein erstes Argument muss vom Typ void * sein. Ein zweites Argument vom Typ size_t ist optional. In einer Klasse T kann maximal eine Version jedes der Operatoren T::operator delete[]() und T::operator delete() definiert werden. Zum Überladen der delete-Operatoren verwendet man die folgenden Prototypen:

  • void operator delete(void *Typ_ptr, [size_t Typ_groesse]); // Für Nicht-Arrays
  • void operator delete[](size_t Typ_ptr, [size_t Typ_groesse]); // Für Arrays

Siehe auch