Mengapa GNU GCC Menjana Berbilang Pemusnah?
Dalam C , kelas mungkin mempunyai berbilang pemusnah, setiap satu dengan tujuan tertentu:
Pemusnah Objek Asas (D2): Memusnahkan objek itu sendiri, kelas asas bukan maya dan ahli data.
Pemusnah Objek Lengkap (D1) : Selain itu memusnahkan kelas asas maya.
Memadamkan Pemusnah Objek (D0): Memanggil operator padam untuk membebaskan memori dan melakukan tindakan yang sama seperti D1.
Origins of Multiple Destructors
Apabila menyusun, GCC menjana pemusnah ini untuk kelas dengan fungsi maya atau kelas asas maya. Ini adalah keperluan C ABI (Antara Muka Binari Aplikasi) untuk seni bina Itanium.
Perbezaan dan Penggunaan
D2 dan D1 adalah setara dari segi fungsi jika tiada maya kelas asas. GCC boleh mengalikan simbolnya kepada kod yang sama pada pengoptimuman tertentu.
Kesan pada Pengujian Unit
Untuk mencapai 100% liputan fungsi untuk kelas dengan kaedah maya atau kelas asas, adalah penting untuk meliputi semua pemusnah (D2, D1, dan D0) dalam ujian unit untuk memastikan ujian yang mencukupi untuk keseluruhan proses pemusnahan.
Atas ialah kandungan terperinci Mengapa GCC Menjana Berbilang Pemusnah dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!