emregll adlı üyeden alıntı: mesajı görüntüle
delete()
{
free()
}

gibi yanlış bir şey anlaşılabilir yazdıklarınızdan hocam.

delete: deallocation yapar ve destructor ı çağırır.
free: deallocation yapar, destructor ı çağırmaz.

#include <iostream>
class Test {
public:
~Test(){
std::cout << "Destructor called!" << std::endl;
}
};
int main()
{
Test* testPtr = new Test();
free(testPtr);
return 0;
}
ekrana herhangi bir şey basmazken,

#include <iostream>
class Test {
public:
~Test(){
std::cout << "Destructor called!" << std::endl;
}
};
int main()
{
Test* testPtr = new Test();
delete testPtr;
return 0;
}
"Destructor called!" çıktısı üretecektir.

"Delete operatörü direk free() fonksiyonunu çağırıyor normal de". Yanlış bir ifade.
Yukarı da ki durumda destructoru çağırmanın bir faydası yok ekstra işlem yaptırmış oluyorsunuz boşuna free kullanmak daha mantıklı, hepsinin kullanım yeri farklıdır hangisi duruma uyuyorsa onu kullanırsınız, class destroy edildiğinde bir işlem yapılacaksa delete kullanmak en mantıklısı bu durumda öyle birşey yok.