Berbilang Pemusnah dalam GNU GCC (g )
Soalan:
Semasa menyiasat liputan kod dalam GNU GCC (g ), berbilang pemusnah diperhatikan untuk kedua-dua BaseClass dan DerivedClass. Mengapakah berbilang pemusnah ini dijana dan bagaimanakah ia berbeza?
Jawapan:
Dalam Itanium C ABI, tiga jenis pemusnah ditakrifkan:
Berbilang Pemusnah dalam Kod Diberi:
Kod yang diberikan menjana berbilang pemusnah kerana ia termasuk kelas asas maya. Dalam kes ini:
Penggunaan Pemusnah Terpilih:
Itanium C ABI menentukan pemusnah mana yang dilaksanakan:
Implikasi Liputan:
Untuk mencapai liputan fungsi 100%, adalah penting untuk memahami pemusnah ini dan menggunakannya dengan sewajarnya dalam ujian unit. Contohnya, b_ptr harus dipadamkan sebagai BaseClass* b_ptr untuk melaksanakan D0 dan meliputi kedua-dua pemusnah.
Atas ialah kandungan terperinci Bagaimanakah Pelbagai Pemusnah dalam GNU GCC (g ) Berbeza dan Mengapa Ia Dijana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!