Rumah >pembangunan bahagian belakang >C++ >Bilakah C Destructor Harus Menjadi Maya Tulen?

Bilakah C Destructor Harus Menjadi Maya Tulen?

Patricia Arquette
Patricia Arquetteasal
2024-12-02 13:55:11968semak imbas

When Should a C   Destructor Be Pure Virtual?

Mengapa Kita Memerlukan Pemusnah Maya Tulen dalam C ?

Pemusnah maya adalah penting dalam C untuk memastikan pembersihan objek yang betul apabila berurusan dengan pewarisan dan polimorfisme. Walau bagaimanapun, mengapakah kita memerlukan pemusnah maya tulen secara khusus?

Bila Menggunakan Pemusnah Maya Tulen

Pemusnah maya tulen digunakan terutamanya apabila kita mahu mengisytiharkan kelas sebagai abstrak. Ini bermakna kelas yang diperoleh daripada kelas abstrak mesti mengatasi pemusnah.

Walau bagaimanapun, perlu diingat bahawa menjadikan maya tulen pemusnah tidak menjadikan kelas itu abstrak secara automatik. Seseorang boleh membuat abstrak kelas dengan membuat mana-mana fungsi ahlinya maya tulen.

Adakah Amalan Baik untuk Menjadikan Destructor Tulen Maya dalam Kelas Abstrak?

Tidak, secara amnya tidak dianggap amalan yang baik untuk menjadikan pemusnah tulen maya dalam kelas abstrak. Pemusnah maya biasa memadai untuk mengisytiharkan kelas sebagai abstrak.

Sebabnya ialah pengkompil secara automatik akan menjana pemusnah tersirat untuk kelas terbitan jika pengarang kelas tidak mentakrifkannya. Pemusnah tersirat ini akan bukan menjadi maya tulen, yang bermaksud kelas terbitan tidak akan menjadi abstrak semata-mata kerana pemusnah maya tulen dalam kelas asas.

Faedah Tambahan

Walaupun tidak begitu diperlukan untuk tujuan menjadikan kelas abstrak, pemusnah maya tulen kadangkala boleh mudah sebagai peringatan kepada kelas terbitan bahawa kod pembersihan khusus diperlukan. Walau bagaimanapun, pendekatan ini dianggap agak direka dan tidak dikuatkuasakan.

Kesimpulan

Dalam C , pemusnah maya tulen tidak penting untuk mengisytiharkan kelas sebagai abstrak, seperti mana-mana maya tulen fungsi ahli dapat memenuhi tujuan ini. Faedah utama mereka ialah memberikan peringatan kepada kelas terbitan bahawa kod pembersihan khusus diperlukan.

Atas ialah kandungan terperinci Bilakah C Destructor Harus Menjadi Maya Tulen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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