Diberikan tiga fungsi terlampau beban dengan jenis parameter yang berbeza-beza (nilai, rujukan nilai, rujukan nilai const), panggilan fungsi boleh menjadi samar-samar jika ketiga-tiga beban lampau berdaya maju. Artikel ini membincangkan peraturan yang mengawal resolusi beban lampau dalam senario sedemikian dan meneroka gelagat bernuansa yang diperhatikan dalam C .
Dengan hanya satu parameter untuk dipertimbangkan, peraturan menyatakan bahawa satu permulaan parameter mesti padanan yang lebih baik daripada kedua-duanya dua yang lain. Apabila membandingkan dua pemulaan, sama ada satu dianggap lebih baik, atau kedua-duanya tidak dianggap lebih baik (tidak dapat dibezakan).
Jika tiada peraturan khas untuk pengikatan rujukan langsung, ketiga-tiga pemulaan itu tidak dapat dibezakan dalam ketiga-tiga perbandingan. Walau bagaimanapun, peraturan khas ini meningkatkan int&& (rujukan nilai) di atas const int& (rujukan nilai), manakala kedua-duanya tidak dianggap lebih baik atau lebih teruk daripada int (nilai). Oleh itu, tidak timbul padanan terbaik.
Tingkah laku ini digambarkan dalam matriks berikut:
S1 S2 int int&& indistinguishable int const int& indistinguishable int&& const int& S1 better
Matriks menunjukkan bahawa int&& diutamakan berbanding const int& berdasarkan klausa 13.3.3.2 piawaian C. Peraturan ini terpakai pada pengikatan rujukan yang tidak merujuk kepada parameter objek tersirat bagi fungsi ahli bukan statik tanpa pelayakkan semula, dan di mana S1 mengikat rujukan rnilai kepada rnilai manakala S2 mengikat rujukan lnilai.
Walau bagaimanapun, peraturan ini tidak terpakai apabila salah satu permulaan bukan pengikatan rujukan, oleh itu kekaburan.
Pengarang mencadangkan mempertimbangkan int&& (rujukan nilai) sebagai padanan yang lebih baik daripada int (nilai), kerana rujukan mesti terikat pada pemula sementara jenis objek tidak tertakluk kepada kekangan sedemikian. Ini berpotensi membuat peraturan peleraian beban lampau baharu yang mengutamakan pengikatan daripada pemula. Walau bagaimanapun, cadangan ini memerlukan perbincangan lanjut dan potensi penyeragaman melalui platform cadangan masa hadapan isocpp.
Atas ialah kandungan terperinci Bilakah Kekaburan Penyelesaian Lebihan C Timbul Antara Nilai, Rujukan Nilai R dan Parameter Rujukan Nilai Konst?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!