Rumah >pembangunan bahagian belakang >C++ >Mengapa Fungsi Maya Tulen Dimulakan dengan 0?
Dalam bidang pengaturcaraan berorientasikan objek, fungsi maya tulen menonjol sebagai konsep asas. Diisytiharkan dengan sintaks virtual void fun () = 0 ;, fungsi ini mengundang soalan: Mengapa ia mesti dimulakan oleh 0?
Pencarian untuk Fungsi Maya Tulen
Fungsi maya tulen mempunyai tujuan penting dalam mentakrifkan kelas dan antara muka abstrak. Mereka mengisytiharkan kaedah tetapi meninggalkan pelaksanaannya kepada kelas terbitan. Ini memberi kuasa kepada pembangun untuk mencipta struktur polimorfik di mana objek daripada jenis yang berbeza boleh berkongsi antara muka yang sama.
Misteri Sifar
Penugasan enigmatik 0 kepada fungsi maya tulen telah menarik minat pengaturcara selama beberapa dekad. Satu pemahaman yang lazim menunjukkan bahawa permulaan ini menetapkan entri vtable mereka kepada NULL, pada asasnya menjadikan mereka tidak tersedia untuk dipanggil. Walau bagaimanapun, andaian ini tidak sepenuhnya tepat.
Makna Sebenar Didedahkan
Sebab sebenar untuk menggunakan 0 dalam pengisytiharan fungsi maya tulen berpunca daripada batasan praktikal yang dihadapi oleh Bjarne Stroustrup, arkitek C . Dalam karya seminalnya, "The Design & Evolution of C ," Stroustrup mendedahkan bahawa sintaks pelik telah dipilih kerana kekurangan sokongan untuk kata kunci tambahan.
Pelaksanaan Alternatif
Selain itu, Stroustrup menekankan bahawa menetapkan entri vtable kepada NULL bukanlah kaedah optimum untuk merealisasikan maya tulen fungsi. Walaupun sesetengah penyusun boleh mengendalikannya dengan cara ini, ia bukan piawaian sejagat. Pilihan nilai permulaan ialah perincian pelaksanaan dan boleh berbeza-beza merentasi pengkompil C yang berbeza.
Kesimpulannya
Pemulaan fungsi maya tulen dengan 0 kurang berkaitan dengan manipulasi vtable dan banyak lagi yang berkaitan dengan kekangan sejarah dan praktikal perkembangan bahasa. Ia berfungsi sebagai peringatan tentang pendekatan pragmatik yang sering diambil dalam evolusi alat pengaturcaraan yang berkuasa seperti C .
Atas ialah kandungan terperinci Mengapa Fungsi Maya Tulen Dimulakan dengan 0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!