Unterscheidet sich delete ptr
von nur in diesem, dass delete
Anrufe ptr
Destructor? Oder in anderen Worten, ruft delete ptr
zuerst einen Destruktor von ptr
und dann operator delete(ptr)
, um zugewiesenen Speicher freizugeben? Dann ist delete ptr
technisch äquivalent zu den folgenden:Löschen vs Operator löschen (und void Zeiger)
T * ptr = new T;
//delete ptr equivalent:
ptr->~T();
::operator delete(static_cast<void *>(ptr));
?
Ja, das ist der einzige Unterschied, abgesehen davon, dass Sie 'operator delete' überladen können. –