Rumah > pembangunan bahagian belakang > C++ > Bilakah OK untuk Memanggil Pemusnah secara Eksplisit dalam C ?

Bilakah OK untuk Memanggil Pemusnah secara Eksplisit dalam C ?

Susan Sarandon
Lepaskan: 2024-10-29 03:51:02
asal
356 orang telah melayarinya

 When is it Okay to Explicitly Call a Destructor in C  ?

Panggilan Pemusnah Eksplisit: Bila dan Mengapa

Secara amnya, panggilan pemusnah eksplisit tidak disyorkan dalam C . Walau bagaimanapun, pengecualian wujud, seperti yang ditunjukkan dalam Bahagian 13.4.5 Piawaian C 11:

<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>
Salin selepas log masuk

Dalam contoh ini, panggilan pemusnah eksplisit dibenarkan kerana objek yang dipersoalkan dicipta menggunakan peletakan baharu. Untuk memusnahkan objek sedemikian, anda mesti memanggil pemusnahnya secara eksplisit.

Selain pemadaman peletakan, terdapat beberapa sebab yang sah untuk memanggil pemusnah secara eksplisit. Satu kemungkinan ialah memusnahkan objek yang boleh dimusnahkan secara manual, walaupun ini tidak begitu berguna.

Nota Tambahan

Pengecualian yang sering disebut kepada peraturan mengelakkan panggilan pemusnah yang jelas berkaitan dengan pembolehubah tempatan. Walau bagaimanapun, ini tidak tepat; anda tidak seharusnya memanggil pemusnah secara eksplisit pada pembolehubah setempat.

Atas ialah kandungan terperinci Bilakah OK untuk Memanggil Pemusnah secara Eksplisit dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan