C Warisan Maya: Menyelesaikan Kekaburan Pembina untuk Berbilang Pangkalan Maya
Kod yang diberikan, menampilkan kelas asas maya A dan B yang diwarisi oleh kelas terbitan C, menghadapi ralat kompilasi apabila cuba membina contoh C. Walaupun C mewarisi daripada Base hanya secara tidak langsung melalui A dan B, GCC menimbulkan isu dengan mencari pembina yang betul untuk kelas Asas untuk dimulakan.
Memahami Permulaan Kelas Asas Maya
Kelas asas maya berbeza dalam proses permulaan mereka. Daripada dikendalikan oleh kelas asas perantaraan, pemulaan asas maya diwakilkan kepada kelas paling banyak terbitan. Apabila membina kelas terbitan yang mewarisi daripada berbilang pangkalan maya, seperti C dalam contoh ini, pengkompil menghadapi cabaran untuk memilih pemula yang sesuai untuk pangkalan maya.
Menangani Kesamaran
Untuk menyelesaikan kekaburan ini, kelas yang paling banyak terbitan mesti secara eksplisit memulakan kelas asas maya dalam permulaan ahlinya senarai. Dalam kes ini, C harus memasukkan yang berikut dalam pembinanya:
C(C* pParent) : Base(pParent), A(pParent), B(pParent) {}
Dengan secara eksplisit memulakan Base dalam pembina, anda mengarahkan pengkompil untuk menggunakan pembina lalai untuk Base, memastikan pemulaan yang betul.
Ketersediaan Pembina Lalai
Adalah penting untuk diingati bahawa kelas asas maya mesti mempunyai pembina lalai yang boleh diakses dan tersirat. Jika tiada pembina lalai tersedia atau boleh diakses, kompilasi akan gagal.
Atas ialah kandungan terperinci Bagaimanakah Kekaburan Pembina dalam Warisan Maya C Dapat Diselesaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!