Bolehkah Objek Dibawa ke Pembinanya Sendiri?
Soalan:
Dalam C pembina kelas, adakah boleh diterima untuk menghantar objek sebagai hujah kepada sendiri?
Jawapan:
Anehnya, menghantar objek ke dalam pembinanya sendiri dibenarkan di bawah piawai C, walaupun kelihatan tidak konvensional. Ini dijelaskan oleh laporan kecacatan 363, yang menyatakan bahawa objek yang tidak dimulakan boleh digunakan untuk mengikat rujukan dan mengambil alamat.
Penjelasan:
Bahagian 3.8 C 14 standard menjelaskan bahawa sebelum hayat objek bermula atau berakhir, sebarang nilai gl yang merujuk objek boleh digunakan tetapi hanya untuk tujuan terhad. Ini termasuk rujukan yang mengikat dan mengambil alamat, yang tidak bergantung pada nilai objek.
Secara praktikal, menggunakan objek yang tidak diinisialisasi dalam pembina boleh membawa kepada amaran, seperti yang ditunjukkan oleh amaran Clang tentang pembolehubah "tidak dimulakan". Walau bagaimanapun, amaran ini tidak menunjukkan tingkah laku yang tidak ditentukan kerana tiada nilai yang tidak ditentukan dihasilkan.
Contoh yang menyebabkan tingkah laku tidak ditentukan ialah permulaan kendiri dengan tugasan, seperti "int x = x".
Kesimpulan:
Semasa menghantar objek ke dalam pembina mereka sendiri mungkin kelihatan luar biasa, ia adalah amalan yang sah di bawah piawaian C, membenarkan interaksi terhad dengan objek yang tidak dimulakan semasa proses pembinaan.
Atas ialah kandungan terperinci Bolehkah Anda Melewati Objek kepada Pembinanya Sendiri dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!