Kita harus tetap menggunakan new dan delete untuk alokasi memori dinamis dan de-alokasi masing-masing dalam program C++ . Mencampur baru dan gratis bukanlah ide yang baik, karena C++ operator baru memanggil konstruktor dan menghapus panggilan operator destructor kelas. Jika kita menggunakan free , itu tidak akan memanggil destruktor kelas.
Selain itu, bisakah kita menggunakan gratis dengan yang baru di C++?
Anda dapat menggunakan malloc() dan new dalam program yang sama. Anda juga tidak dapat mengalokasikan dengan new dan menghapus dengan free () atau menggunakan realloc() pada array yang dialokasikan oleh new . Operator C++ new dan delete menjamin konstruksi dan penghancuran yang tepat ; di mana konstruktor atau destruktor perlu dipanggil, mereka berada.
Selain itu, apa yang gratis lakukan di C++? Fungsi free () di C++ membatalkan alokasi blok memori yang sebelumnya dialokasikan menggunakan fungsi calloc, malloc, atau realoc, membuatnya tersedia untuk alokasi lebih lanjut. Fungsi free () tidak mengubah nilai pointer, yaitu masih menunjuk ke lokasi memori yang sama.
Mempertimbangkan ini, apa yang New lakukan di C++?
Ketika new digunakan untuk mengalokasikan memori untuk objek kelas C++ , konstruktor objek dipanggil setelah memori dialokasikan. Gunakan operator hapus untuk membatalkan alokasi memori yang dialokasikan dengan operator baru . Operator baru tidak dapat digunakan untuk mengalokasikan suatu fungsi, tetapi dapat digunakan untuk mengalokasikan pointer ke fungsi.
Apa gunanya operator baru dan hapus di C++?
C++ mendukung alokasi dinamis dan dealokasi objek menggunakan operator new dan delete . Operator ini mengalokasikan memori untuk objek dari kumpulan yang disebut penyimpanan gratis. Operator baru memanggil operator fungsi khusus baru , dan operator hapus memanggil operator fungsi khusus hapus .