Mengapa Pengkompil C Mengelak Menjana Operator Perbandingan Lalai?
Sementara pengkompil C menyediakan pembina lalai, pembina salin, pemusnah dan pengendali tugasan, mereka dengan sengaja mengecualikan operator perbandingan seperti operator== dan operator!=. Keputusan reka bentuk ini berpunca daripada kebimbangan yang dibangkitkan oleh pencipta C Bjarne Stroustrup mengenai kemungkinan perangkap operasi salinan yang dijana secara automatik.
Stroustrup menyatakan tempahannya dalam "The Design and Evolution of C," menyatakan bahawa dia menganggap operasi salinan lalai untuk menjadi tidak diingini dan secara aktif menghalang penggunaannya dalam kebanyakan kelasnya. Keengganan ini timbul daripada warisan C daripada C, di mana pembina salinan lalai dan pengendali tugasan sering digunakan. Walau bagaimanapun, operasi lalai ini boleh membawa kepada tingkah laku yang tidak dijangka apabila digunakan pada kelas dengan dalaman yang kompleks atau halus.
Jika tiada operator perbandingan lalai, pengkompil secara paksa memerlukan takrifan eksplisit untuk operator== dan operator!=. Ini memastikan bahawa pembangun mempertimbangkan dengan teliti implikasi perbandingan kelas dan menentukan pengendali tersuai yang menggambarkan dengan tepat tingkah laku yang dimaksudkan. Pendekatan ini menggalakkan pembangun membuat keputusan termaklum tentang perbandingan kelas dan bukannya bergantung pada kod yang dihasilkan pengkompil yang tersirat atau berkemungkinan salah.
Atas ialah kandungan terperinci Mengapa Pengkompil C Tidak Menjana Operator Perbandingan Lalai (pengendali == dan operator!=)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!