Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C 11 Membenarkan Permulaan Dalam Kelas Ahli Tidak Statik dan Tidak Tetap?
Permulaan Dalam Kelas C 11: Sekatan Bertenang untuk Ahli Tidak Statik dan Tidak Tetap
Sebelum C 11, pemulaan dalam kelas dihadkan kepada ahli kamiran tetap statik atau jenis penghitungan. Alasan di sebalik pengehadan ini ialah keperluan untuk mengekalkan takrifan unik untuk objek merentas berbilang unit terjemahan sambil mengelakkan peraturan pemaut yang rumit.
Walau bagaimanapun, C 11 melonggarkan sekatan ini, membenarkan permulaan dalam kelas bagi ahli bukan statik (§ 12.6.2/8). Ini termasuk ahli data bukan statik dengan pemula pendakap atau-sama-sama dan kelas asas bukan maya bagi kelas bukan abstrak.
Jadi, apakah yang telah berubah untuk menjadikannya mungkin? Walaupun tiada pengubahsuaian ketara dibuat pada pemaut, pengkompil telah menjadi lebih kompleks untuk mengendalikan tanggungjawab tambahan.
Tidak seperti versi C sebelumnya, yang menguatkuasakan peraturan ketat pada berbilang definisi, pengkompil C 11 kini mengendalikan berbilang definisi dalam sebuah kelas. Daripada pemaut menyelesaikan konflik definisi, pengkompil mengambil tugas ini.
Perubahan dalam tanggungjawab ini memperkenalkan lebih kerumitan untuk pengaturcara yang kini mesti mempertimbangkan kemungkinan konflik antara pemulaan berbilang ahli untuk ahli tunggal. Sebagai contoh, kelas dengan kedua-dua pemula ahli dan pembina dengan pemula khusus untuk ahli yang sama memerlukan pertimbangan yang teliti untuk menentukan pemulaan yang akan digunakan.
Walaupun semakin kompleks, faedah pemulaan dalam kelas mengatasi cabaran. Ia membolehkan kod yang lebih ringkas dan ekspresif, mengurangkan boilerplate dan menjadikan kod lebih mudah dibaca dan difahami.
Atas ialah kandungan terperinci Bagaimanakah C 11 Membenarkan Permulaan Dalam Kelas Ahli Tidak Statik dan Tidak Tetap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!