Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa C 11 Mendayakan Permulaan Dalam Kelas untuk Ahli Bukan Statik?

Mengapa C 11 Mendayakan Permulaan Dalam Kelas untuk Ahli Bukan Statik?

Patricia Arquette
Patricia Arquetteasal
2024-11-23 05:34:24649semak imbas

Why Did C  11 Enable In-Class Initialization for Non-Static Members?

C 11 Membenarkan Permulaan Dalam Kelas: Apakah yang Mendorong Perubahan?

Dalam era pra-C 11, permulaan dalam kelas ialah terhad kepada ahli const statik. Had ini dikaitkan dengan keperluan untuk mengelakkan komplikasi pemaut dalam senario unit berbilang terjemahan.

Walau bagaimanapun, dengan pengenalan C 11, sekatan ini telah dilonggarkan, membenarkan pengamulaan dalam kelas untuk bukan statik dan bukan- ahli const (§12.6.2/8).

Sementara alasan asal untuk sekatan kekal sah, C 11 melaksanakan penyelesaian yang mengalihkan beban daripada Penghubung kepada penyusun. Daripada membenarkan berbilang takrifan, pengkompil kini mengendalikan pemula.

Untuk ahli bukan statik dengan pendakap-atau-sama-pemula, pemulaan dilakukan mengikut 8.5. Jika tidak, jika ia adalah ahli varian (9.5), tiada pemulaan berlaku. Dalam semua kes lain, pemulaan lalai (8.5) dilakukan.

Selain itu, ahli statik bukan const yang ditandakan dengan penentu constexpr kini boleh dimulakan dalam kelas (9.4.2).

Perubahan ini memudahkan penyelenggaraan kod dan memberikan fleksibiliti yang lebih besar, tetapi ia menambahkan beberapa kerumitan kepada peraturan pengaturcaraan. Sebagai contoh, jika ahli mempunyai berbilang pemula yang ditentukan, nilai yang dimulakan ditentukan oleh pembina yang digunakan. Dalam kes di mana pembina lalai digunakan, pemula dalam kelas digunakan. Jika pembina bukan lalai menentukan nilai, pemula dalam kelas diabaikan.

Secara keseluruhan, perubahan itu mencerminkan penekanan yang meningkat pada ergonomik pembangun yang dipertingkatkan tanpa mengorbankan kebolehpercayaan pemaut. Penyusun kini memainkan peranan yang lebih kompleks untuk memudahkan ciri ini sambil mengekalkan pemisahan kebimbangan yang bersih.

Atas ialah kandungan terperinci Mengapa C 11 Mendayakan Permulaan Dalam Kelas untuk Ahli Bukan Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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