Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk membebankan operator dengan berkesan == dalam Hierarki Kelas?
Dalam hierarki kelas, operator lebih muatan== untuk memastikan perbandingan objek yang boleh disesuaikan dan tepat menjadi penting. Walau bagaimanapun, menentukan pendekatan yang betul boleh mencabar.
Pengendali beban lebihan fungsi percuma==, membolehkan perbandingan langsung nod daun dalam hierarki. Walau bagaimanapun, kaedah ini melarang kelas terbitan daripada mewarisi logik perbandingan kelas asasnya tanpa pemutus.
Fungsi ahli maya menyediakan pendekatan alternatif, tetapi ia memerlukan pemutus dan boleh menyusahkan untuk hierarki yang sangat bersarang.
Kaedah pilihan, diilhamkan oleh Scott Meyer's Effective Nasihat C, menyokong langkah berikut:
Ini pendekatan memastikan bahawa perbandingan antara jenis yang berbeza dihalang kerana fungsi asas dilindungi. Kelas daun, walau bagaimanapun, boleh memanfaatkan logik perbandingan induk untuk ahli data tertentu.
Untuk mengelakkan perbandingan sandaran secara tidak sengaja, elakkan melaksanakan operator== dalam kelas asas abstrak. Sebaliknya, sediakan fungsi pembantu bukan maya (dilindungi), seperti isEqual(), dalam kelas asas yang boleh diakses oleh pelaksanaan operator== kelas terbitan.
Dalam kes di mana perbandingan dinamik diperlukan, fungsi maya tulen dalam kelas asas boleh digunakan. Fungsi maya tulen kemudiannya boleh ditindih dalam kelas terbitan konkrit, merujuk operator== kelas terbitan.
Atas ialah kandungan terperinci Bagaimana untuk membebankan operator dengan berkesan == dalam Hierarki Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!