Rumah >pembangunan bahagian belakang >C++ >Mengapakah GCC (g ) Menjana Berbilang Pemusnah untuk Kelas Yang Sama?
GNU GCC (g ): Mengapa Ia Menjana Berbilang Pemusnah?
Apabila memeriksa jadual simbol program C yang disusun, anda boleh amati berbilang pemusnah (dtors) yang dihasilkan untuk kelas yang sama. Memahami fenomena ini adalah penting untuk mencapai liputan kod komprehensif dalam ujian unit.
Sebab Pelbagai Pemusnah:
Pengkompil GCC menjana berbilang pemusnah atas sebab berikut:
Jenis Pemusnah:
GCC menjana tiga jenis dtors:
Cara Pemusnah Digunakan:
Biasanya, fungsi padam operator akan memanggil dtor yang betul berdasarkan jenis objek yang dipadamkan. Walau bagaimanapun, anda boleh memanggil dtor tertentu secara eksplisit semasa ujian untuk memastikan liputan lengkap.
Contoh:
Kod berikut menunjukkan berbilang dtor yang dijana untuk BaseClass dan DerivedClass:
<code class="cpp">class BaseClass { public: ~BaseClass(); void someMethod(); }; class DerivedClass : public BaseClass { public: virtual ~DerivedClass(); virtual void someMethod(); };</code>
Setelah menyusun dengan GCC (g ), anda akan melihat tiga ktor untuk DerivedClass sebagai tambahan kepada dua untuk BaseClass, seperti yang ditunjukkan oleh arahan nm.
Kesimpulan:
Penjanaan berbilang dtor ialah ciri GCC untuk mengendalikan senario yang berbeza, termasuk warisan maya dan pengoptimuman. Memahami tujuan dan penggunaan dtors ini adalah penting untuk mencapai 100% liputan fungsi dalam ujian unit anda.
Atas ialah kandungan terperinci Mengapakah GCC (g ) Menjana Berbilang Pemusnah untuk Kelas Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!