Rumah >pembangunan bahagian belakang >C++ >Mengapakah Penunjuk/Rujukan Penting untuk Polimorfisme?
Polymorphism: Keperluan untuk Petunjuk/Rujukan
Polymorphism, konsep asas dalam pengaturcaraan berorientasikan objek, membenarkan objek dari kelas yang berbeza menjadi diperlakukan seolah-olah mereka tergolong dalam kelas super biasa. Walaupun kelihatan intuitif bahawa memperuntukkan memori pada timbunan akan mencukupi untuk pengikatan dinamik, ketiadaan penunjuk atau rujukan secara asasnya menghalang polimorfisme.
Untuk memahami sebabnya, pertimbangkan contoh berikut:
Derived d; Base* b = &d;
Dalam senario ini, d berada pada timbunan, namun polimorfisme kekal berfungsi untuk b. Ini kerana b mengekalkan maklumat yang diperlukan untuk mencari contoh kelas terbitan.
Sebaliknya, tanpa penunjuk atau rujukan kelas asas, polimorfisme tidak boleh beroperasi. Pertimbangkan:
Base c = Derived();
Disebabkan penghirisan, objek c dikenali sebagai Pangkalan dan bukannya objek Terbitan. Walaupun polimorfisme secara teknikal berfungsi, objek kelas terbitan pada dasarnya hilang.
Akhir sekali, dalam kod di bawah:
Base* c = new Derived();
c hanya menunjuk ke lokasi memori, yang berpotensi mengandungi objek Pangkalan atau Terbitan . Pengikatan dinamik masih boleh dilakukan untuk panggilan kaedah maya kerana pemanggil tidak mengetahui kelas tertentu.
Oleh itu, penggunaan penunjuk atau rujukan amat diperlukan untuk polimorfisme kerana ia:
Atas ialah kandungan terperinci Mengapakah Penunjuk/Rujukan Penting untuk Polimorfisme?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!