Susunan Panggilan Pembina dan Pemusnah dalam Warisan
Apabila mentakrifkan kelas yang diwarisi, adalah penting untuk memahami urutan di mana pembina dan pemusnah digunakan . Pertimbangkan contoh berikut:
struct A { A() { cout << "A() C-tor" << endl; } ~A() { cout << "~A() D-tor" << endl; } }; struct B : public A { B() { cout << "B() C-tor" << endl; } ~B() { cout << "~B() D-tor" << endl; } A a; };
Tertib Pembinaan:
Oleh itu, susunan pembinaan ialah:
Arahan Pemusnahan:
Pemusnah dipanggil dalam susunan terbalik pembinaan:
Perintah pemusnahan ialah:
Senarai Pemula :
Walaupun tiada senarai pemula eksplisit ditakrifkan dalam B, senarai permulaan lalai secara automatik dihasilkan oleh pengkompil. Senarai ini memulakan kelas asas (A) dan medan ahli (a) menggunakan pembina lalainya.
Kesimpulannya, susunan panggilan pembina dan pemusnah dalam warisan mengikut peraturan tertentu: pembina memulakan kelas asas dahulu, kemudian medan ahli, dan akhirnya kelas terbitan. Pemusnah menggunakan proses pembersihan dalam susunan terbalik. Memahami peraturan ini adalah penting untuk menulis kod yang mantap apabila menggunakan warisan.
Atas ialah kandungan terperinci Apakah Urutan Panggilan Pembina dan Pemusnah dalam Warisan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!