Delete operatörü direk free() fonksiyonunu çağırıyor normal de, fakat farklı derleyiciler için daha uyumlu olması açısından delete kullanımı daha iyi olabilir
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.