Rumah > Artikel > pembangunan bahagian belakang > Berikut ialah beberapa tajuk berasaskan soalan, dengan mengingati kandungannya: * Bilakah Diperlukan untuk Memanggil Pemusnah Secara Eksplisit dalam C ? * Mengapa Anda Boleh Memanggil Pemusnah Secara Jelas dalam C ? * Apakah itu Sp
Memanggil Pemusnah secara Eksplisit dalam C
Walaupun secara amnya dinasihatkan supaya tidak memanggil pemusnah secara eksplisit, terdapat senario khusus apabila ia menjadi perlu. Satu kes sedemikian ditunjukkan dalam C 11 Standard N3485 Seksyen 13.4.5 berkenaan hujah templat.
Seperti yang dipamerkan dalam coretan kod, adalah dibenarkan untuk memanggil pemusnah secara eksplisit pada objek pengkhususan templat kelas, dengan menyatakan secara eksplisit hujah templat:
<code class="cpp">template<class T> struct A { ~A(); }; void f(A<int>* p, A<int>* q) { p->A<int>::~A(); // OK: destructor call q->A<int>::~A<int>(); // OK: destructor call }</code>
Panggilan eksplisit ini menjadi perlu apabila berurusan dengan objek yang dibuat menggunakan peletakan baharu. Dalam kes sedemikian, pemusnah mesti dipanggil secara eksplisit untuk melepaskan memori yang berkaitan dengan betul.
Selain peletakan padam, terdapat senario terhad lain di mana panggilan pemusnah eksplisit adalah wajar:
Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan, dengan mengingati kandungannya: * Bilakah Diperlukan untuk Memanggil Pemusnah Secara Eksplisit dalam C ? * Mengapa Anda Boleh Memanggil Pemusnah Secara Jelas dalam C ? * Apakah itu Sp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!