Pertanyaan yang diberi tag «delete-operator»

Dalam bahasa pemrograman C ++, operator delete memanggil destruktor dari argumen yang diberikan, dan mengembalikan memori yang dialokasikan oleh new back ke heap.






16
Bagaimana delete [] tahu itu array?
Baiklah, saya pikir kita semua setuju bahwa apa yang terjadi dengan kode berikut tidak ditentukan, tergantung pada apa yang diteruskan, void deleteForMe(int* pointer) { delete[] pointer; } Pointer dapat berupa segala macam hal yang berbeda, sehingga melakukan tanpa syarat delete[]di atasnya tidak ditentukan. Namun, mari kita asumsikan bahwa kita memang …



12
Mengapa tidak menghapus setel pointer ke NULL?
Saya selalu bertanya-tanya mengapa pengaturan otomatis pointer ke NULL setelah delete bukan bagian dari standar. Jika ini ditangani maka banyak dari crash karena pointer yang tidak valid tidak akan terjadi. Tetapi setelah mengatakan bahwa saya dapat memikirkan beberapa alasan mengapa standar akan membatasi ini: Kinerja: Instruksi tambahan dapat memperlambat deletekinerja. …

6
Menghapus penunjuk di C ++
Konteks: Saya mencoba memahami petunjuk, kami baru saja melihatnya beberapa minggu yang lalu di sekolah dan saat berlatih hari ini saya bertemu dengan orang bodoh? masalah, ini bisa sangat mudah bagi Anda tetapi saya memiliki sedikit atau tidak ada pengalaman pemrograman. Saya telah melihat beberapa pertanyaan di SO tentang menghapus …

5
Menghapus pointer ke const (T const *)
Saya punya pertanyaan dasar tentang petunjuk const. Saya tidak diizinkan untuk memanggil fungsi non-anggota const menggunakan pointer const. Namun, saya diizinkan melakukan ini pada pointer const: delete p; Ini akan memanggil destruktor kelas yang pada dasarnya adalah 'metode' non-const. Mengapa ini diperbolehkan? Apakah hanya untuk mendukung ini: delete this; Atau …


3
Mengapa destruktor tidak dipanggil pada operator hapus?
Saya mencoba menelepon ::deleteuntuk kelas di operator deletedalamnya. Tetapi destruktor tidak disebut. Saya mendefinisikan kelas MyClassyang operator deletekelebihan beban. Global operator deletejuga kelebihan beban. The kelebihan beban operator deletedari MyClassakan memanggil global kelebihan beban operator delete. class MyClass { public: MyClass() { printf("Constructing MyClass...\n"); } virtual ~MyClass() { printf("Destroying MyClass...\n"); …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.