Rumah >pembangunan bahagian belakang >C++ >Adakah C Memulakan Sifar Ahli Data Secara Tersirat dalam Pembina Lalainya?
Latar Belakang:
Kewujudan pembina lalai tersirat dalam C mempunyai menimbulkan persoalan dalam kalangan pemaju. Tuntutan buku teks mencadangkan bahawa pengkompil menghasilkan satu apabila tiada yang diisytiharkan secara eksplisit, secara teorinya memulakan ahli data kepada sifar.
Pelaksanaan Pembina Lalai
Jika tiada pembina ditakrifkan untuk kelas , pengkompil mencipta pembina lalai. Tingkah lakunya adalah seperti berikut:
Untuk jenis POD (Data Lama Biasa), tiada pembina eksplisit wujud, tetapi tingkah laku lalai sama dengan tiada tindakan.
Implikasi Tambahan
Pembina Salin, Operator Tugasan Salin, Pemusnah: Jika tiada satu pun daripada ini ditakrifkan, pengkompil menyediakan pelaksanaan lalai:
Move Constructor, Move Assignment Operator: Jika tiada yang ditakrifkan, pengkompil sekali lagi menyediakan lalai:
Kesimpulan:
Sementara pengkompil menyediakan pembina lalai tersirat, ia tidak memulakan sifar ahli data. Tingkah laku pembina adalah membina kelas asas dan pembolehubah ahli secara lalai. Tingkah laku ini, bersama-sama dengan pelaksanaan lalai untuk pembina salin/pindah dan pengendali tugasan, memastikan penciptaan dan manipulasi objek yang konsisten dalam C .
Atas ialah kandungan terperinci Adakah C Memulakan Sifar Ahli Data Secara Tersirat dalam Pembina Lalainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!