Bolehkah Anda Melewati Objek kepada Pembinanya Sendiri dalam C ?

Linda Hamilton
Lepaskan: 2024-11-11 00:36:02
asal
578 orang telah melayarinya

Can You Pass an Object to Its Own Constructor in C  ?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan