delete ptr
differisce da operator delete(ptr)
solo in questo, che delete
chiama ptr
distruttore? O in altre parole, delete ptr
chiama prima un distruttore di ptr
e quindi operator delete(ptr)
per liberare memoria allocata? Quindi è delete ptr
tecnicamente equivalente al seguente:Elimina vs operatore elimina (e puntatore void)
T * ptr = new T;
//delete ptr equivalent:
ptr->~T();
::operator delete(static_cast<void *>(ptr));
?
Sì, questa è l'unica differenza, oltre al fatto che è possibile sovraccaricare l'operatore "delete". –