Adakah Jenis Terbina Dalam Mempunyai Pembina?
Apabila int sementara dimulakan nilai kepada 0, adakah ini kerana int() memanggil pembina lalai? Ini adalah salah tanggapan yang biasa, kerana jenis terbina dalam tidak mempunyai pembina.
Permulaan Nilai lwn. Pembina Lalai
Pengamatan nilai, konsep yang agak baru, memulakan objek sementara dengan nilai yang sesuai untuk jenisnya. Untuk jenis terbina dalam, nilai ini ialah 0 untuk integer.
Penyata TC PL
Seksyen 10.4.2 TC PL menyatakan bahawa jenis terbina dalam juga mempunyai lalai pembina. Walau bagaimanapun, kenyataan ini boleh dikatakan tidak betul dalam konteks C 98 dan C 03.
Penjelasan Bjarne Stroustrup
Apabila dihubungi secara peribadi, Bjarne Stroustrup menjelaskan bahawa dia menganggap terbina- dalam jenis untuk mempunyai pembina dalam erti kata konsep, walaupun mereka kekurangan pembina sebenar panggilan. Pengkonsepan ini berdasarkan tingkah laku seperti pembina mereka, seperti pemulaan nilai.
Kesimpulan
Secara teknikal, jenis terbina dalam tidak mempunyai pembina. Walau bagaimanapun, sintaks yang digunakan untuk memulakannya (cth., int{5}, int{}) adalah sama dengan pembina. Oleh itu, untuk tujuan praktikal, adalah munasabah untuk menganggap jenis terbina dalam sebagai mempunyai pembina lalai yang memulakan nilainya dengan sewajarnya semasa pemulaan nilai.
Atas ialah kandungan terperinci Adakah Jenis Terbina Dalam dalam C Mempunyai Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!