Pemulaan Dalam Kelas C 11: Menangani Sekatan Lalu
Sebelum C 11, permulaan dalam kelas dihadkan kepada ahli tetap statik kamiran atau jenis penghitungan. Sekatan ini berpunca daripada keperluan untuk mengelakkan peraturan pemaut yang rumit, memastikan setiap objek mempunyai definisi yang unik.
Walau bagaimanapun, C 11 memperkenalkan perubahan ketara dengan membenarkan permulaan dalam kelas bagi ahli bukan statik dan bukan const (§ 12.6.2/8). Kelonggaran ini mungkin disebabkan oleh penambahbaikan dalam pengkompil, yang kini memikul tanggungjawab untuk menyusun sebarang definisi berbilang yang berpotensi, membenarkan pengisytiharan kelas yang lebih kompleks.
Untuk ahli data bukan statik, pendakap-atau-sama- pemula boleh digunakan untuk memulakan semasa pembinaan objek. Ahli varian tidak dimulakan melainkan dinyatakan secara eksplisit, manakala permulaan lalai dilakukan apabila tiada pemula disediakan.
Pemulaan dalam kelas bagi ahli bukan statik const juga kini boleh dilakukan apabila ia diisytiharkan dengan penentu constexpr ( Bahagian 9.4.2).
Perubahan ini telah meningkatkan kesederhanaan dan kecekapan kod dengan menghapuskan keperluan untuk pemula ahli luar kelas. Walau bagaimanapun, mereka juga memperkenalkan peraturan baharu untuk mengendalikan kemungkinan pemula pendua dalam pembina kelas yang berbeza. Contohnya, jika pembolehubah ahli mempunyai pemula dalam kelas dan juga dimulakan dalam pembina, pemula dalam kelas akan diabaikan apabila menggunakan pembina tersebut.
Ringkasnya, sementara kerumitan pelaksanaan asas telah beralih daripada penyambung kepada pengkompil, pemulaan dalam kelas C 11 sangat meningkatkan definisi kelas dan keupayaan permulaan ahli, meningkatkan kebolehbacaan kod dan fleksibiliti.
Atas ialah kandungan terperinci Bagaimanakah C 11 Meningkatkan Permulaan Dalam Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!